Javascript 未显示PDF表单字段内容

Javascript 未显示PDF表单字段内容,javascript,firefox,pdf,pdf-generation,pdf.js,Javascript,Firefox,Pdf,Pdf Generation,Pdf.js,我使用ApachePDFBox(Java)以编程方式使用表单字段生成PDF。但是,当使用PDF.JS/Firefox加载PDF时,不会显示这些字段的内容。使用独立查看器或Chrome打开文件时,该字段的内容将正确显示 我知道PDF.JS不支持编辑AcroForms,但我读到仅仅显示应该不会有任何问题 以下是一个生成的PDF文件,在使用PDF.JS/Firefox时无法正确显示: 解决方案是将标记“NeedAppearances”设置为false,正如mkl和Maruan Sahyoun在评论中提

我使用ApachePDFBox(Java)以编程方式使用表单字段生成PDF。但是,当使用PDF.JS/Firefox加载PDF时,不会显示这些字段的内容。使用独立查看器或Chrome打开文件时,该字段的内容将正确显示

我知道PDF.JS不支持编辑AcroForms,但我读到仅仅显示应该不会有任何问题

以下是一个生成的PDF文件,在使用PDF.JS/Firefox时无法正确显示:


解决方案是将标记“NeedAppearances”设置为false,正如mkl和Maruan Sahyoun在评论中提到的那样。谢谢

PDDocumentCatalog docCatalog = _pdfDocument.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
acroForm.setNeedAppearances(false);

您是如何生成PDF的?你能分享一个示例代码吗?您使用了哪个版本的PDFBox?没有显示任何内容的原因是,尽管表单字段的值已设置,但它没有进入外观流,即几乎为空。外观流用于显示字段内容。PDF由LibreOffice 4.2.8.2(文件->导出为PDF)生成。然后由PDFBox设置字段。但我也试着用LibreOffice填写表格,内容也没有显示出来。。。因此,我假设问题与LibreOffice生成PDF有关。目前,我正在尝试使用另一个应用程序(Acrobat DC Pro)生成PDF。OpenOffice/LibreOffice倾向于导出PDF,其NeedAppearances标志设置为true;这要求PDF查看器生成外观。填充这种PDF文件的PDF处理程序通常会对该标志作出反应,不会自行创建外观;毕竟,PDF查看器被要求以任何方式生成外观。但不幸的是,许多不完整的PDF查看器不知道如何生成外观。因此,他们忽略该标志并显示他们发现的:无外观。在设置字段值之前,请将NeedAppearances标志设置为false。如果标志设置为true,PDFBox 2.0.x不会创建外观流。2.1.x将改变这一点,并始终生成外观流,而不管标志是真还是假。