0

所以我似乎无法弄清楚这一点。在 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 而失败(复制下面我的用户名更改为 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}
4

1 回答 1

0

app.launchURL()在您的 MWE 中使用(而不是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 插件,它也会被使用。)从 Adob​​e Reader 6.0 开始,您不需要在 Web 浏览器中调用此方法。

--第 345 页

于 2020-05-28T06:43:25.807 回答