如何使用 hyperref 验证 pdf 表单中的日期/电子邮件条目?

如何使用 hyperref 验证 pdf 表单中的日期/电子邮件条目?

考虑下面的 MWE,我想验证日期条目以及要输入的电子邮件地址,因为它们应该使用包手册中仅简要提到的验证选项hyperref

验证 JavaScript 代码以验证输入

梅威瑟:

\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\minisec{Time schedule:}
\TextField[backgroundcolor=gray!10,borderwidth=0,maxlen=10,value=01/09/2015,width=6em]{Proposed starting date of the study:}\\
\noindent\TextField[backgroundcolor=gray!10,borderwidth=0,maxlen=10,value=31/12/2016,width=6em]{Proposed completion date of the study:}\\
\TextField[backgroundcolor=gray!10,borderwidth=0,maxlen=10,[email protected],width=20em]{E-Mail:}\\
\end{Form}
\end{document}

输出:
在此处输入图片描述

答案1

如果您知道使用 Javascript 来验证日期或电子邮件(我不知道),您可以通过对 Acrobat 规范中的某些示例进行逆向工程来调整我整理的这个示例(您不会在文档中找到这个示例,hyperref而且我在上下文中找不到任何预先存在的示例hyperref)。

\documentclass{article}
\usepackage{hyperref}
\usepackage{pdfcomment} %why I need this?
\begin{document}  
    \TextField[
        validate = {
            event.rc = true; 
            if(event.value != "A" && event.value != "B"){ /*your validation code goes here*/
                app.alert("Error, value must be A or B"); 
                event.rc=false;
            }
        }
    ]{A or B:}
\end{document}

我使用 Acrobat 9.4.1 对其进行了测试。

这是我第一次用 Javascript 编写代码,我不确定是否可以从 Acrobat Reader 中嵌入的 Javascript 加载库或执行其他奇特的操作。如果您发布您的 Javascript 代码,我将学到更多。

我找不到验证代码语法错误的方法,如果有语法错误,脚本基本上会被忽略。例如,一个小小的错误可能会导致代码根本无法运行。

代码基于:http://khkonsulting.com/2012/11/validating-field-contents/

相关内容