Como aumentar ou diminuir campos de texto em formulários PDF?

Como aumentar ou diminuir campos de texto em formulários PDF?

Tenho tido um problema de desalinhamento entre os campos de texto gerados hyperrefe as linhas retas correspondentes abaixo deles. A imagem anexa ilustra o problema.

Os campos de texto estão desalinhados com as linhas abaixo

O objetivo é claro. Gostaria de diminuir os campos de texto para que cada campo de texto fique diretamente acima da linha reta correspondente. Meu código é o seguinte:

\documentclass{article}

\usepackage{hyperref}

\begin{document}

\begin{flushleft}
    \begin{Form}
\renewcommand{\baselinestretch}{1.0}
\fontsize{12}{24}\selectfont
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} advisor, \hspace{2cm} Date\\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberA \\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberB \\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberC \\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberD \\
    \end{Form}
\end{flushleft}


\end{document}

Sempre existe a opção de aumentar as linhas, mas terei que aumentar os títulos das assinaturas (por exemplo advisor, , memberA) também. Prefiro diminuir os campos de texto se possível, pois sempre posso criá-los manualmente usando o Acrobat, se necessário.

Qualquer ajuda será apreciada.

Responder1

Eu usaria um tabularjunto com booktabs:

\documentclass[12pt]{article}
\usepackage{booktabs}
\usepackage{hyperref}

\begin{document}
\begin{Form}
\begin{tabular}{@{}p{11.5cm}@{}}
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
advisor, \hspace{2cm} Date\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberA\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
 memberB\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberC\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberD
\end{tabular}
    \end{Form}


\end{document}

insira a descrição da imagem aqui

Responder2

A resposta acima está correta. Por razões de exaustividade, gostaria de acrescentar os resultados da minha própria tentativa fracassada, a fim de ilustrar diferentes aspectos do problema.

Se eu usar raisebox, meu código fica assim:

\documentclass{article}

\usepackage{hyperref}

\begin{document}

\begin{flushleft}
    \begin{Form}
\renewcommand{\baselinestretch}{1.0}
\fontsize{12}{24}\selectfont
\raisebox{-1.0 cm}[2cm]{\TextField[name=First and Last Name, width=8cm, borderwidth=1, charsize=0pt]{} \TextField[name=Date, width=3.7cm, borderwidth=1, charsize=0pt]{}}\\
\rule[-2.5ex]{11.4cm}{0.5pt} \\
advisor, \hspace{7.3cm} Date\\
\hspace*{2cm} \raisebox{-1.0 cm}[2cm]{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberA \\
\hspace*{2cm} \raisebox{-3.0 cm}{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberB \\
\hspace*{2cm} \raisebox{-1.0 cm}{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberC \\
\hspace*{2cm} \raisebox{-1.0 cm}{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberD \\
    \end{Form}
\end{flushleft}


\end{document}

e os resultados podem ser vistos na imagem. Como você pode ver, tentar diminuir o campo de texto raiseboxé bem-sucedido, até um ponto crítico. Após este ponto crítico, em vez de apenas o campo de texto ser abaixado, todo o "grupo" (composto pelo campo de texto, linha e título da assinatura) é abaixado.

<code>Raisebox</code> funciona até certo ponto

Minha segunda observação diz respeito à solução mencionada acima, com booktabs, que funciona. Se eu alterar um pouco o código, você verá que o problema é causado essencialmente pelo rulecomando.

    \documentclass[12pt]{article}
\usepackage{booktabs}
\usepackage{hyperref}

\begin{document}
\begin{Form}
\begin{tabular}{@{}p{11.5cm}@{}}
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\rule[-2.5ex]{11.4cm}{0.5pt} 
advisor, \hspace{2cm} Date\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberA\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberB\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberC\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberD
\end{tabular}
\end{Form}


\end{document}

Demonstração do problema causado pela <code>rule</code>

informação relacionada