加载错误的pdf时捕获pdfbox警告

dfddblmv  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(867)

使用pdfbox加载pdf时,如果pdf错误,则会收到日志级别的警告:

PDDocument doc = PDDocument.load (new File (filename));

例如,这可能导致控制台上出现以下输出:

Dez 08, 2020 9:14:41 AM org.apache.pdfbox.pdfparser.COSParser validateStreamLength 
WARNING: The end of the stream doesn't point to the correct offset, using workaround to read the stream, stream start position: 3141, length: 1674, expected end position: 4815

显然,pdf在内容流中有一些错误,但它确实会加载到 doc . 但是,有没有可能用pdfbox以编程方式捕捉这些警告呢?是否存在一些属性来告诉您文档加载后的警告?
我在飞行前尝试过pdfbox,但这会检查pdf/a的合规性,从而产生更多的消息。

watbbzwu

watbbzwu1#

尝试解析器的非宽容模式。此代码来自showsignature.java示例:

RandomAccessBufferedFileInputStream raFile = new RandomAccessBufferedFileInputStream(file);
// If your files are not too large, you can also download the PDF into a byte array
// with IOUtils.toByteArray() and pass a RandomAccessBuffer() object to the
// PDFParser constructor.
PDFParser parser = new PDFParser(raFile);
parser.setLenient(false);
parser.parse();
PDDocument document = parser.getPDDocument();

相关问题