PDF フォームのテキスト フィールドを上げたり下げたりするにはどうすればよいでしょうか?

PDF フォームのテキスト フィールドを上げたり下げたりするにはどうすればよいでしょうか?

hyperref生成されたテキスト フィールドとその下の対応する直線の間に位置ずれの問題が発生しています。添付の​​画像はこの問題を示しています。

テキストフィールドが下の行とずれています

目的は明確です。テキスト フィールドを下げて、各テキスト フィールドが対応する直線の真上にくるようにします。コードは次のとおりです。

\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}

advisor行を上にするオプションは常にありますが、署名タイトル (例: 、 ) も上にする必要がありますmemberA。必要に応じて Acrobat を使用して手動で作成できるため、可能であればテキスト フィールドを低くすることを希望します。

どのような助けでもいただければ幸いです。

答え1

tabular私はを と一緒に使用します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}

ここに画像の説明を入力してください

答え2

上記の答えは正解です。完全を期すために、問題のさまざまな側面を説明するために、私自身の失敗した試みの結果を追加したいと思います。

を使用するとraisebox、コードは次のようになります。

\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}

結果は画像で確認できます。ご覧のとおり、テキスト フィールドを下げようとすると、raisebox限界点までは成功します。この限界点を超えると、テキスト フィールドだけが下げられるのではなく、(テキスト フィールド、行、署名タイトルで構成される)「グループ」全体が下げられます。

<code>Raisebox</code>はある程度まで機能します

2 つ目の観察結果は、上記の を使用した解決策に関するもので、booktabsこれは機能します。コードを少し変更すると、問題は基本的に コマンドによって発生していることがわかりますrule

    \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}

<code>rule</code> によって発生する問題のデモンストレーション

関連情報