如何将 mailto 绑定到 PDF 表单中的这个 PushButton onclick 操作?

如何将 mailto 绑定到 PDF 表单中的这个 PushButton onclick 操作?

我想使用 pdf 表单中的链接操作发送电子邮件。我将action=mailto:...其添加到PushButton之后,onclick但我不确定是否应该直接绑定mailto到 上。代码onclick

% https://tex.stackexchange.com/a/388186/13173
% https://tex.stackexchange.com/a/386853/13173
\documentclass{article}
\RequirePackage{hyperref}
\begin{document}
\begin{Form}
\TextField[charsize={10pt},multiline=true,height={5mm},width={5cm},name={text_info},bordercolor={0.2 0.2 0.7},default={}]{}
\PushButton[onclick={this.exportAsText()},action=mailto:leo <[email protected]>]{Submit}
\end{Form}
\end{document}

编译时输出pdflatex

 ! Package kvsetkeys Error: Undefined key `action'.

测试 Diabonas 的提议

  1. Diabonas 的示例代码可以运行,但下一步更好地控制电子邮件内容:发送文件本身和电子邮件中的文本内容。

  2. 也可以在 Beamer 中使用,示例如下

Beamer 代码示例

\documentclass{beamer}
\usepackage[english]{babel}
\usetheme{Berkeley}
\usepackage{microtype}% more flexibility for narrow columns
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{adjustbox}

% https://tex.stackexchange.com/a/395124/13173
\RequirePackage{hyperref}

\usepackage{eforms}

\begin{document}
\begin{frame}
\frametitle{Lorem}
Testing 1. 
\end{frame}

\begin{frame}
% Show reproduction of the answers in the next sheet. 

Send to the address:
\begin{Form}
\TextField[charsize={10pt},multiline=true,height={5mm},width={5cm},name={text_info},bordercolor={0.2 0.2 0.7},default={}]{}
\PushButton[onclick={this.submitForm("mailto:leo <[email protected]>"); this.exportAsText();}]{Submit}
\end{Form}

\end{frame}
\end{document}

输出:激活电子邮件客户端

操作系统:Debian 9.1
TeXLive:2017
电子邮件客户端:Thunderbird
PDF 查看器:Adobe Reader(Linux 中的 acroread)

答案1

为了通过电子邮件发送表单并将数据保存到本地文件,您可以使用submitFormJavaScript 方法:

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\TextField[charsize={10pt},multiline=true,height={5mm},width={5cm},name={text_info},bordercolor={0.2 0.2 0.7},default={}]{}
\PushButton[onclick={this.submitForm({cURL: "mailto:leo <[email protected]>", cSubmitAs: "FDF"); this.exportAsText();}]{Submit}
\end{Form}
\end{document}

这是按顺序进行的,即,仅在发送电子邮件后(或至少关闭撰写窗口)才会提示您将文件保存到磁盘。

理论上,您可以切换 JavaScript 命令的顺序以首先保存文件,但我建议按照此处给出的顺序执行:免费的 Adob​​e Reader 仅支持发送数据,但不支持保存数据,因此使用这种方法,它至少会发送表单,而反之则会引发错误并且根本不执行任何操作。

通过邮件发送的数据将在FDF 文件格式默认情况下。您可以通过将方法cSubmitAs的参数更改为submitFormXFDF. 出口查询字符串语法参数值 也支持此功能HTML,但它似乎被 Microsoft Outlook 电子邮件客户端阻止,因此我不建议使用它。Acrobat 的 JavaScript API 参考还列出了一些其他不太常见的数据格式。

保存到文件中的数据将位于CSV 文件格式,并且可以更改为 FDF 或 XFDF,如中所述保存 PDF 表单信息

相关内容