hyperref \TextFields 在表中,字段名称位于字段上方

hyperref \TextFields 在表中,字段名称位于字段上方

我想创建一个带有可填写表格的 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}

在此处输入图片描述

相关内容