PDF无法加载,因为PDDocument无法读取

时间:2017-05-18 08:17:58

标签: pdf pdfbox

所以我现在面临的问题如下。

在我们项目的工作中,我们有一个系统,用于阅读pdf-s并打印它们。现在所有这一切似乎都在起作用,但是当我试图打印静态pdf-s时,我发现错误 startxref未找到 ...我已经检查了pdf-s,他们似乎顺序。 startxref引用位于文件末尾。 我发现奇怪的是它有更多的EOF-s和startxref-s。

但那是因为Adobe。因为它在前一个版本之后附加了较新版本的PDF。

我们正在使用org.apache.pdfbox.pdmodel.PDDocument加载文件。但没有任何内容被填满。没有预告片没有startxref没有什么。它只是无法读取它。 并且所有文件都不会发生。有些PDF-s是版本1.6,有些是1.4。 我怀疑该文件可能已损坏。但不是。通过一些验证器在线检查并检查出来。

在这一点上,我对问题可能是什么一无所知。我现在只是在浪费时间。 任何对此的见解都将非常感激。

这是使用的代码。没什么特别的。但是当试图加载pdf的一部分时没有加载到< pdfTemplate>

PDDocument pdfTemplate = PDDocument.load(file);
PDDocumentCatalog docCatalog = pdfTemplate.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();

// Get field names
List<PDField> fieldList = acroForm.getFields();
List<PDPage> pages = pdfTemplate.getDocumentCatalog().getAllPages();

process.processPage(company, templateFile, pdfTemplate, acroForm, fieldList, pages, args);

COSDictionary acroFormDict = acroForm.getDictionary();
//((COSArray) acroFormDict.getDictionaryObject("Fields")).clear();

return pdfTemplate;

这是PDF。它只是一个静态PDF,为客户提供一些法律信息。 https://drive.google.com/open?id=0B57cf1nqGbC4SEYtemxwQjFQNkU

更新/修改

我还尝试使用pjx(使用的版本/ jar是pjx-200030817.jar)作为字节数组加载PDF。正如在项目的前一版本中所做的那样(当它工作时)。但结果却同样令人遗憾。 代码如下:

//静态PDF

String pdfFileName = printDescriptor.getPdfFileName();
byte contents[] = IOUtils.toByteArray(context.getResourceAsStream("/" + pdfFileName));
pdfInput = new PdfInputBuffer(ByteBuffer.allocate(contents.length), pdfFileName);
intermediateFiles.add(new PdfManager(new PdfReader(pdfInput)));

提前谢谢!!!如果我在某些方面不够清楚,我会澄清。

0 个答案:

没有答案