PDF 表单中的复选框在 OS X 中不显示

PDF 表单中的复选框在 OS X 中不显示

我正在尝试使用 hyperref 创建 PDF 表单。除了复选框之外,表单看起来不错。在 Adob​​e Reader 和 Preview.app 中,复选框均未显示。如果我将鼠标悬停在复选框上,我的光标会发生变化,如果我单击它,我甚至可以看到复选框和复选标记的短暂闪烁。两者都会立即消失。

在 Windows 上的 Adob​​e Reader 中,复选框最初是不可见的,但第一次单击时就会显示出来。在 FoxIt Reader 中,它们完全按预期工作。

这是一个最小工作示例,我从教程中复制而来:

\documentclass{memoir}
\usepackage[left=25mm,top=25mm,bottom=10mm,right=10mm]{geometry}
\usepackage{graphicx}
\usepackage{color}
\usepackage[
  xetex,a4paper=true,colorlinks=true,
  pdftitle={Key form},pdfsubject={Key},
  pdfauthor={ich},pdfpagemode=UseNone,pdfstartview=FitH,
  pagebackref,pdfhighlight={/N}
]{hyperref}
\begin{document}
\section*{Request for a key}
\begin{Form}
Front door: \CheckBox[name=ht]{}\\
\end{Form}
\end{document}

以下是输出的链接:http://dl.dropbox.com/u/2126832/ex0001.pdf

我正在使用 XeTeX,但我尝试使用 PDFTeX 进行编译时遇到了同样的问题。我最近升级到了 OS X 10.7 (Lion) 和 Texlive 2011。

我花了很多时间在 Google 上搜索这个问题,但没有在其他地方找到相关内容。如能得到任何帮助我将不胜感激。

编辑:为了帮助诊断问题,我应该注意电子表格手册工作正常。(我也尝试使用 eforms,但没有任何效果。这并不奇怪,因为 eforms 使用了 hyperref。)

答案1

我准备了两个 pdf 文档,其中包含进一步简化的输入文件

\documentclass{article}
%\pdfminorversion=1
\usepackage[unicode=true, verbose]{hyperref}
\begin{document}
\section{Request for a key}
\begin{Form}
Test: \CheckBox{}
\end{Form}
\end{document}

我用 10.6 版电脑准备了一份文档,用 10.7 版电脑准备了一份文档,两者都使用了 TL2011 和 LuaLaTex。如果在文本编辑器中打开,输出文件看起来完全相同。我曾经diff -a lion.pdf snow.pdf显示更多细节,并得到了

218,219c218,219
< /CreationDate (D:20111027072803+02'00')
< /ModDate (D:20111027072803+02'00')
---
> /CreationDate (D:20111027091652+02'00')
> /ModDate (D:20111027091652+02'00')
250c250
< /ID [<1E45A68F3C173651B121446FAD778EB3> <1E45A68F3C173651B121446FAD778EB3>]
---
> /ID [<0CCBB711863F46770F8A748517E79A96> <0CCBB711863F46770F8A748517E79A96>]

因此这些文件实际上是完全相同的。

请注意,即使在 Snow Leopard 和 TL2011 上准备的文件也无法在 Snow Leopard 上使用 Adob​​e Acrobat Pro 9 显示格式。在同一台计算机上预览没有问题。

我可以得出这样的结论:

  1. TL 没有准备正确的 pdf 文件,这个错误现在以某种方式显现出来了
  2. pdf 查看器无法正确显示 pdf 文件,这种情况很可能发生,但不仅限于 Lion。

答案2

我相信这是 hyperref 中的一个真正的错误;对我来说,关键的提示是,如果我通过 运行 pdf pdf2ps,我会得到

   **** Error: Required entry /BBox not present in Form.
               Output may be incorrect.
               Output may be incorrect.
   **** Error: Stream object is missing the stream data.

如果我将 ps 转换回 pdf ps2pdf,则没有复选框。

有趣的是,当我在 Adob​​e Reader 中打开 PDF 时,它会询问我是否要在关闭时保存更改(即使我没有做任何更改)。如果我这样做,则复选框在任何地方都会正常显示,并且通过文件往返.ps会保留复选框。

我已将此报告为https://github.com/latex3/hyperref/issues/153

相关内容