将表单中的TextField用作hyperref中的href(或PushButton)URL

时间:2019-01-21 23:42:21

标签: javascript latex hyperref

所以我似乎无法弄清楚。在Latex“表单”环境中,假设有一个如下所示的文本字段:

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

现在,如果要在同一Form块中的其他位置访问此文件,则可以执行以下操作:

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而失败(在下面复制,我的用户名更改为USERNAME)匿名):

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}

1 个答案:

答案 0 :(得分:0)

在您的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()具有不同的功能:

submitForm

将表单提交到指定的URL。要调用此方法,您必须在Web浏览器中运行或 安装了Acrobat Web Capture插件。 (如果该网址使用“ mailto”方案,则将被接受 即使没有运行在Web浏览器中,只要存在SendMail插件。) Adobe Reader 6.0,您无需在网络浏览器内即可调用此方法。

-Page 345