我有一个带有只读计算文本字段的pdf表单。此pdf是使用hyperref包从latex代码生成的。
为了说明我的问题,让我们使用这个mwe(来自pdftex和javascript表单的自动计算问题):
结果
乳胶
\documentclass{article}
\usepackage{hyperref}[pdftex]
\begin{document}
\begin{Form}
\TextField[maxlen=40,align=2,height=10pt,width=45pt,name=alpha,default=5]{Alpha}
\bigskip
\TextField[maxlen=40,align=2,height=10pt,width=45pt,name=beta,default=4]{Beta}
\bigskip
\TextField[
maxlen=40,
calculate={%
var f_alpha = this.getField("alpha");
var f_beta = this.getField("beta");
event.value = f_alpha.value + f_beta.value;
},
align=2,height=10pt,width=45pt,name=gamma,readonly=true]{Gamma}
\end{Form}
\end{document}
我的问题是,在启动时,没有计算伽马值(在我们的例子中为9)。我必须更改表单中的任何字段,以便更新所有javascript。
是否有一种方法可以让所有javascript在启动文件时执行,而不仅仅是在修改文件时执行?
1条答案
按热度按时间gv8xihay1#
解决方案
打开文件时,默认情况下不会执行pdf中的javascript脚本。
但是,adobe acrobat允许我们在pdf中定义事件和操作(e、 g.打开文件,播放声音,转到页面)。也可以在事件发生时执行javascript脚本。
这个
calculateNow()
单据的功能将重新计算单据中的所有字段。但是,打开文件时不应执行此函数,因为未定义字段的创建顺序。有可能
calculateNow()
函数在某些字段尚未创建时调用。此脚本应仅在打开第一页时运行(而不是在打开文件时)。因此,它已完成生成。
要使用latex编写此操作,需要使用
\pdfpageattr
命令:mwe