PDF格式文本隐藏,除非单击

时间:2012-08-30 14:05:06

标签: java pdf pdf-generation pdfbox pdf-form

在我的应用程序中,我必须使用来自DB的数据填充预定义的PDF表单。我们正在使用Java和Pdfbox。填充本身不是问题。

问题在于,在生成的PDF文件中,除非单击字段,否则表单中的所有文本都是不可见的(或隐藏的,也是灰色矩形)。

我该如何解决这个问题?

8 个答案:

答案 0 :(得分:9)

当我尝试使用pdfbox以编程方式填写PDF表单时,我遇到了同样的问题。我将这个答案添加到一个相当古老的问题中,因为所有其他答案都操纵原始PDF,这并不总是一个选项。

隐形表单字段的问题刚出现在Acrobat PDF中,其他PDF渲染器显示它很好。如果使用pdfbox 1.8.x,则必须按照here所述设置Need Appearances

PDAcroForm form = docCatalog.getAcroForm();
form.getDictionary().setItem(COSName.getPDFName("NeedAppearances"), COSBoolean.TRUE);

如果使用pdfbox 2,则简化为:

PDAcroForm form = docCatalog.getAcroForm();
form.setNeedAppearances(true);

答案 1 :(得分:3)

我在一个论坛上看到这个并为我工作:

使用Adobe Acrobat Pro,我使用“导出数据”将表单导出为XML,然后使用“导入数据”将其从XML文件导回。这些命令位于表单/管理表单数据

这是帖子的链接:http://forums.adobe.com/thread/637421

答案 2 :(得分:3)

我在Java中使用PDFBox填充的表单确实存在这个问题。

我通过在Acrobat Pro中打开原始(空白)PDF表单并更改每个问题文本字段的一些选项来修复它。选项可能因您而异,但这对我有用:

在Acrobat Pro菜单栏中,转到表格>添加或编辑字段。 右键单击Acrobat Pro中的文本字段,然后选择属性,然后:

在“选项”标签中:

  • 取消除“滚动长文本”
  • 之外的所有选项
  • 在默认值框中添加一些空格字符

在“外观”标签中:

  • 将字体大小设置为“自动”

点击“关闭表单编辑”并保存文件。

Field Options

答案 3 :(得分:1)

我不知道你怎么能阻止它在将来发生,但是让文件工作的解决办法,就像g-eorge一样,在adobe acrobat pro中打开它,在右侧菜单中的工具中选择“交互式对象“并选择选择对象。

当您突出显示要修复的第一个字段时,您应该能够控制-a以选择所有交互式对象。选择全部后,右键单击一个字段并选择属性。

在“常规”标签中,底部选项应具有“常用属性”,其中包含“表单字段”选项,将其更改为隐藏,然后返回可见。然后,这将恢复表单的所有可见性。

当我收到这个时,这对我来说很有用,并且没有让我失望过一次。希望它能为你做同样的事,

BOB的

答案 4 :(得分:1)

在每个错误隐藏对象的外观标签中,您将看到"填充颜色"设置为无。再次将其设置为none(只需单击它)并保存PDF,这些字段将正常显示。我无法相信adobe已经让这个错误持续了这么久。当使用多个pdf阅读器查看/保存时,它会不断发生。

答案 5 :(得分:1)

我刚刚遇到过这个问题,并在一个非常简单的事情发生之前尝试了一些组合。我有Adobe Acrobat 9.0,但我找不到这里写的一些选项。

我最终做的是一个双管齐下的过程:我去了表格>管理表单数据>导出数据;然后我将该文件保存在桌面上。接下来,我回到了Forms>管理表单数据,而是选择导入数据,并选择我刚刚保存的文件。答对了!一切都填好了。

答案 6 :(得分:0)

我在这里尝试过的所有方法都不起作用-除了更改软件。

我正在使用PDFElement 6 Pro(试用版),但无法使用。使用PDFBox以及上面的所有建议对各种事情进行了尝试。

最终尝试了https://www.pdfescape.com/,一切都很好。

答案 7 :(得分:0)

在我的情况下,我通过在属性中的“外观”选项卡中将字体更改为 Arial(或 Windows 中的标准之一)解决了这个问题。 之前,它被设置为未嵌入文件中的 Helvetica,我认为它产生了问题。