使用‘hyperref’排版可填写的 PDF 表单

使用‘hyperref’排版可填写的 PDF 表单

我正在尝试使用 hyperref 创建可填写的 PDF 表单,并且希望文本字段为长行而不是框。目前,我正在使用以下代码:

\documentclass{scrartcl}

\usepackage{hyperref}
\usepackage{amsmath}

\renewcommand\LayoutTextField[2]{%
    #2
}

\begin{document}
    \begin{Form}
        Name: \dotfill$\overset{\TextField[width=4cm,borderwidth=0pt]{\null}}{\rule{4cm}{.4pt}}$
    \end{Form}
\end{document}

这有效并实现了我想要的,但我只是想知道是否有更好的方法来实现它?出于某种原因,这种解决方案对我来说似乎不够优雅。

答案1

您可以将边框样式设置为下划线。或者在布局中添加一些 tikz 和其他代码。在第二种情况下,将颜色设置为透明。将字段向下移动一点以更好地与标签对齐通常也很有用:

\documentclass[parskip=full-]{scrartcl}

\usepackage{hyperref}
\usepackage{tikz}
\usepackage{amsmath}


\begin{document}
\begin{Form}
\renewcommand\LayoutTextField[2]{%
 #2}

Name: \TextField[width=4cm,borderstyle=U]{nameA}{\rule{4cm}{.4pt}}

 \renewcommand\LayoutTextField[2]{%
   \raisebox{-3.2pt}{\tikz[overlay]\draw[dashed](0,-0.2\dp\strutbox)--++(\csname Fld@width\endcsname,0pt);#2}}

 Name: \TextField[width=4cm,bordercolor={},backgroundcolor={}]{nameB}{\rule{4cm}{.4pt}}


 \renewcommand\LayoutTextField[2]{%
  \raisebox{-\dp\strutbox}{\makebox[0pt][l]{\cleaders \hbox to .44em{\hss.\hss}\hskip\csname Fld@width\endcsname}}#2}

 Name: \TextField[width=4cm,bordercolor={},backgroundcolor={}]{nameC}{\rule{4cm}{.4pt}}
\end{Form}
\end{document}

在此处输入图片描述

相关内容