我无法为\ChoiceMenu
combomode 中的 s 指定默认值。我在 Google 上找到的所有信息都表明它应该以这种方式工作(就像它与 一起工作一样\TextField
)。
\documentclass[a4paper]{scrartcl}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\ChoiceMenu[combo,name=testMenu,default=Test]{bla1:}{Test1,Test2}\\
\\
\TextField[name=testField,default=Test]{bla2:}
\end{Form}
\end{document}
value
无论我用还是用,或者两者同时尝试都没关系default
。
我使用hyperref
版本 7.00u 和 MikTex 22.12
答案1
遗憾的是,hyperref 的表单字段实现存在许多错误。在这种情况下,它会对\pdfstringdef
值应用两次。这意味着 /Opt 数组包含这些值(这是正确的):
/Opt[(\376\377\000T\000e\000s\000t\0001)
(\376\377\000T\000e\000s\000t\0002)]
但默认值如下:
/DV(\376\377\376\377\000\000T\000\000e\000\000s\000\000t\000\0001)
/V(\376\377\376\377\000\000T\000\000e\000\000s\000\000t\000\0001)
你可以尝试这个补丁:
\documentclass[a4paper]{scrartcl}
\usepackage{hyperref}
\usepackage{etoolbox}
\makeatletter
\patchcmd\HyField@PDFChoices
{\xdef\Fld@choices{\Fld@choices/DV(\Hy@gtemp)}}%
{\xdef\Fld@choices{\Fld@choices/DV(\Fld@default)}}
{}{\fail}
\patchcmd\HyField@PDFChoices
{\xdef\Fld@choices{\Fld@choices/V(\Hy@gtemp)}}%
{\xdef\Fld@choices{\Fld@choices/V(\Fld@value)}}
{}{\fail}
\makeatother
\begin{document}
\ChoiceMenu[width=4cm,combo,name=testMenu,value=Test1]{bla1:}{Test1,Test2}
\end{document}
但请注意,实施过程中可能还存在更多错误。
另一种方法是使用 PDF 管理中的电子表单或表单字段:
\DocumentMetadata{} %load pdf management
\documentclass[a4paper]{scrartcl}
\usepackage{l3pdffield-testphase}
\ExplSyntaxOn
\cs_set_eq:NN\pdffieldchoice\pdffield_choice:n
\ExplSyntaxOff
\begin{document}
\pdffieldchoice{width=4cm,name=test,setfieldflags={Combo},default=test1, values={test1,test2,test3}}
\end{document}