我想创建一个带有可填写表格的 pdf 文件。由于我对 hyperref 包没有太多经验,所以我有几个问题需要解决。
其中一个特别之处是关于像布局这样的数组中多个字段的位置,但字段名称位于字段本身上方(参见下面的示例)。
\renewcommand*{\LayoutTextField}[2]{% label, field
{\scriptsize#1} \vspace{2pt} \\ #2 %
}
\TextField[name=fieldA]{FieldA}
当我设法将字段名称设置在字段本身上方时,如所示renewcommand
,这似乎在使用多列和多行的表格中不起作用。在这种情况下,有没有更好的方法将名称放在上面或使用不同的表格?下面示例中的第一个表格显示了我希望放置它的方式,第二个表格显示了我认为它可能如何工作。
\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{multirow}
\begin{document}
\begin{Form}
\title{Headline: \hspace{3em} \TextField[name=fieldC, maxlen=7, width=4cm, charsize=24pt,color=red,align=1]{}}
\maketitle
\renewcommand*{\LayoutTextField}[2]{% label, field
\vspace{-5pt}{\scriptsize#1}\vspace{2pt} \\ #2%
}
\begin{tabular}{ccc}
C & D & \multirow{2}*{E} \\
\multicolumn{2}{l}{F}
\end{tabular}
\begin{tabular}{ccc}
\TextField[name=C]{C} & \TextField[name=D]{D} & \multirow{2}*{\TextField[name=E]{E}} \\
\multicolumn{2}{l}{\TextField[name=F]{F}} \\
\end{tabular}
\end{Form}
\end{document}
如果有比 hyperref 更好的包可用,我也很乐意尝试。干杯。
答案1
您不能\\
像这样将其放在表格单元格内,至少不能放在普通的表格单元格内,因为在这种情况下它表示当前表格行的结尾。您需要将其包装在某种可识别段落的框内。
解决这个问题的一个简单方法是使用tabular
环境来排列标签和文本字段,然后将其嵌套在另一个中tabular
:
\documentclass{scrartcl}
\usepackage{multirow}
\usepackage{hyperref}
\newcommand{\TextFieldWithName}[1]{% label, field
\begin{tabular}{ @{} l @{}}%
\scriptsize #1 \\
\TextField[name=#1]{}%
\end{tabular}
}
\begin{document}
\begin{Form}
\begin{tabular}{ccc}
C & D & \multirow{2}*{E} \\
\multicolumn{2}{l}{F}
\end{tabular}
\begin{tabular}{ccc}
\TextFieldWithName{C} & \TextFieldWithName{D} & \multirow{2}*{\TextFieldWithName{E}} \\
\multicolumn{2}{l}{\TextFieldWithName{F}}
\end{tabular}
\end{Form}
\end{document}