使用 PDFBOX PreflightParser 对 PDDocument 进行 PDF 验证

PDF validate using PDFBOX PreflightParser for PDDocument

我想验证创建的 pdf(不是作为文件)而是作为下载到浏览器的 ByteArrayOutputStream。为了避免安全问题,可以使用 pdfbox preflightparser 进行验证,其中它具有仅用于解析文件而不是 PDDocument 的选项。

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
doc.save(byteArrayOutputStream);
PreflightParser parser = new PreflightParser(doc);

//这个构造函数只接受文件。

期望是即时验证 pdf 文件而不是从系统加载。

如果您不需要 PreflightParser 可以为您提供的额外信息 - 您可以使用 PDFParser. It's constructor accepts RandomAccessBuffer,这需要 byte[] 来创建。

你也可以传一个DataSource。为了方便这一点,使用 org.apache.pdfbox.io.IOUtils.ByteArrayDataSource 其构造函数接受 InputStream.