使用表单中的文本字段作为 href(或 PushButton)在 hyperref 中的 URL



所以我似乎无法弄清楚这一点。 在 Latex "表单"环境中,想象一下有一个如下所示的文本字段:

TextField[default=URL_Here,bordercolor=,name=link1,width=8cm,charsize=10pt]{}

现在,如果您想在同一表单块中的其他位置访问它,您可以使用:

this.getField("link1").value

但是,您如何将其转换为其他地方的超链接? 最终目标是使它在一个文本字段中输入 URL 时,相邻字段中会出现一个可单击的链接。 到目前为止,以下方法都失败了:

href{this.getField("link1").value}{Link}

PushButton[
    onclick={
        this.submitForm(this.getField("link1").value);
    },
    name=hlink1,
    readonly=false, bordercolor=, width=2cm, charsize=10pt
]{Link}

第一种方法只是在pdflatex编译时崩溃,而后者成功(仅在URL中指定 https://时),但在尝试访问某个任意url时失败(复制如下,我的用户名更改为用户名以匿名):

file:///C:/Users/USERNAME/AppData/Local/Temp/acrord32_sbx/A9Rcopupe_dxvlog_9x4.htm

上述提交按钮(失败)的最小测试用例如下:

documentclass{article}
usepackage{hyperref}
begin{document}
begin{Form}
begin{tabular}{c | c }
TextField[default=https://www.google.com,bordercolor=,name=link1,width=8cm,charsize=10pt]{} & 
PushButton[
        onclick={
            this.submitForm(this.getField("link1").value);
        },
        name=hlink1,
        readonly=false, bordercolor=, width=2cm, charsize=10pt
    ]{Link}
end{tabular}
end{Form}
end{document}

在 MWE 中使用 app.launchURL()(而不是 submitForm()

begin{Form}
begin{tabular}{c | c }
TextField[default=https://www.google.com,bordercolor=,name=link1,width=8cm,charsize=10pt]{} & 
PushButton[
        onclick={
            app.launchURL(this.getField("link1").value);
        },
        name=hlink1,
        readonly=false, bordercolor=, width=2cm, charsize=10pt
    ]{Link}
end{tabular}
end{Form}

submitForm()具有不同的功能:

提交表格

将表单提交到指定的 URL。若要调用此方法,必须在 Web 浏览器中运行,或者 安装了 Acrobat Web Capture 插件。(如果 URL 使用"mailto"方案,则遵循 即使不在 Web 浏览器中运行,只要存在 SendMail 插件。从 Adobe Reader 6.0,您无需在 Web 浏览器中即可调用此方法。

-- 第345页

最新更新