开始/结束表单使文本字段输入无法填写

开始/结束表单使文本字段输入无法填写

我注意到在 Overleaf 中使用 Latex 时出现了奇怪的行为。根据 overleaf 的输出,以下代码产生了以下结果:

背面输出

但是如果我使用 Acrobat Reader 下载并打开 pdf,我会发现某些文本字段输入无法填写:

pdf 输出

如果我使用浏览器打开 pdf,则所有文本字段都是可填写的,但是当我保存 pdf 时,这些字段不会被保存。

我设法找到了这个问题的解决方案,那就是删除 周围的开始/结束形式LOCKBIT is "0xFF:。所以它将是:

.....
\begin{document}

\CheckBox{LOCKBIT is "0xFF: }  

\begin{tabular}{| c | p{2.7cm} | c | p{2.7cm} | c | p{2.7cm} |}
.....

为什么会发生这种情况?开始/结束表单不应该独立于其下方的文本字段吗?

\documentclass[a4paper,2pt]{article}
\usepackage{fancyhdr,booktabs,array}
\usepackage[headheight=2pt,margin=1.5cm]{geometry}% read the console - fandyhdr tells you what value you need for consistent layout!
\usepackage{hyperref}% load last unless you know a package should be loaded later


\begin{document}


\begin{Form}
    \CheckBox{LOCKBIT is "0xFF: }       
\end{Form}

\begin{tabular}{| c | p{2.7cm} | c | p{2.7cm} | c | p{2.7cm} |}
    
    \hline
    kpHbeforedec(56): 
    & \TextField[name=T4.1, width=\linewidth]{} 
    & kpHafterdec(57): 
    & \TextField[name=T4.1.1, width=\linewidth]{}
    & KpHDiv(58):
    & \TextField[name=T4.1.2, width=\linewidth]{}\\
     \hline
    kiHbeforedec(72): 
    & \TextField[name=T4.2, width=\linewidth]{} 
    & kiHafterdec(73): 
    & \TextField[name=T4.2.1, width=\linewidth]{}
    & KiHDiv(74):
    & \TextField[name=T4.2.2, width=\linewidth]{} \\
     \hline
    kdHbeforedec(88): 
    & \TextField[name=T4.3, width=\linewidth]{} 
    & kdHafterdec(89): 
    & \TextField[name=T4.3.1, width=\linewidth]{}
    & KdHDiv(90):
    & \TextField[name=T4.3.2, width=\linewidth]{}\\
     \hline

\end{tabular}

\subsection{PID cooling}

\TextField[name=T4.2.1.0]{CoolingAvailable(59):}

\begin{tabular}{| c | p{2.7cm} | c | p{2.7cm} | c | p{2.7cm} |}
    
    \hline
    kpCbeforedec(8): 
    & \TextField[name=T4.2.1.1, width=\linewidth]{} 
    & kpCafterdec(9): 
    & \TextField[name=T4.2.1.2, width=\linewidth]{}
    & KpCDiv(10):
    & \TextField[name=T4.2.1.3, width=\linewidth]{}\\
     \hline
    kiCbeforedec(24): 
    & \TextField[name=T4.2.1.4, width=\linewidth]{} 
    & kiCafterdec(25): 
    & \TextField[name=T4.2.1.5, width=\linewidth]{}
    & KiCDiv(26):
    & \TextField[name=T4.2.1.6, width=\linewidth]{} \\
     \hline
    kdCbeforedec(40): 
    & \TextField[name=T4.2.1.7, width=\linewidth]{} 
    & kdCafterdec(41): 
    & \TextField[name=T4.2.1.8, width=\linewidth]{}
    & KdCDiv(42):
    & \TextField[name=T4.2.1.9, width=\linewidth]{}\\
     \hline

\end{tabular}

\subsection{Overheating protection}

\begin{tabular}{|c|p{5cm}|}
    \hline
    ProtectionTempMax(12): 
    & \TextField[name=T4.4, width=\linewidth]{}\\
     \hline
    ProtectionTempMin(28): 
    & \TextField[name=T4.5, width=\linewidth]{}\\
    \hline
\end{tabular}

\subsection{Timing target}

\begin{tabular}{|c|p{5cm}|}
    \hline
    TargetReachedThreshHold(11):
    & \TextField[name=T4.3.1.1, width=\linewidth]{}\\
    \hline
    CloseToFinalTargetDelay(27):
    & \TextField[name=T4.3.1.2, width=\linewidth]{}\\
    \hline
\end{tabular}

\subsection{Sensors Configuration}

\begin{tabular}{|c|p{5cm}|}
    \hline
    OnlyOneTemperatureSensor(2):
    & \TextField[name=T4.4.1, width=\linewidth]{}\\
    \hline
\end{tabular}

\subsection{Components versions}

\begin{tabular}{|c|p{5cm}|}
    \hline
     PCB Version(48):
     & \TextField[name=T4.5.1, width=\linewidth]{}\\
     \hline
     F/W Version(64):
     & \TextField[name=T4.5.2, width=\linewidth]{}\\
     \hline
\end{tabular}


\end{document}

答案1

不要在字段名称中使用句点。它们具有特殊含义:

PERIOD 用作完全限定名称的分隔符,部分名称不得包含 PERIOD 字符

如果我把它们全部替换成连字符

& \TextField[name=T4-2-1-1, width=\linewidth]{}

有用:

在此处输入图片描述

相关内容