我想使用 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 的提议
Diabonas 的示例代码可以运行,但下一步更好地控制电子邮件内容:发送文件本身和电子邮件中的文本内容。
也可以在 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
为了通过电子邮件发送表单并将数据保存到本地文件,您可以使用submitForm
JavaScript 方法:
\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 命令的顺序以首先保存文件,但我建议按照此处给出的顺序执行:免费的 Adobe Reader 仅支持发送数据,但不支持保存数据,因此使用这种方法,它至少会发送表单,而反之则会引发错误并且根本不执行任何操作。
通过邮件发送的数据将在FDF 文件格式默认情况下。您可以通过将方法cSubmitAs
的参数更改为submitForm
XFDF
. 出口查询字符串语法参数值 也支持此功能HTML
,但它似乎被 Microsoft Outlook 电子邮件客户端阻止,因此我不建议使用它。Acrobat 的 JavaScript API 参考还列出了一些其他不太常见的数据格式。
保存到文件中的数据将位于CSV 文件格式,并且可以更改为 FDF 或 XFDF,如中所述保存 PDF 表单信息。