我有一些用于创建 pdf 的 .jpg 文件。我一直在寻找几个小时,但没有找到任何线性化 pdf 的方法!我很难找到任何关于如何做的文档或指南,现在我希望能在这里得到一些帮助。我还查看了 pdfbox 2.0 API 文档,但找不到任何有用的信息。我以前偶尔使用过 pdfbox,但主要用于拆分或合并 pdf。 这是我到目前为止所写的内容:
private static void createPdf()
{
PDDocument doc = new PDDocument();
try
{
File images = new File("images/");
for (File image : images.listFiles())
{
PDPage page = new PDPage();
doc.addPage(page);
BufferedImage awtImage = ImageIO.read(image);
PDImageXObject pdImageXObject = LosslessFactory.createFromImage(doc, awtImage);
PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.APPEND, true);
contentStream.drawImage(pdImageXObject, 0, 0, (float) (awtImage.getWidth() / 5.4), (float) (awtImage.getHeight() / 5.9));
contentStream.close();
}
doc.setVersion(1.6f);
doc.save("pdf/images_v1.6.pdf");
}
catch (Exception io)
{
System.err.println(" -- fail --" + io);
}
finally
{
try
{
doc.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
非常感谢任何建议!
编辑解决方案: 我已经按照 Tilman Hausherr 的建议尝试了 qpdf,它解决了我的问题。这是一个例子:
文件 400dpi_90.pdf
qpdf --show-linearization 400dpi_90.pdf
qpdf --linearize --min-version=1.6 400dpi_90.pdf 400dpi_90-out.pdf
文件 400dpi_90-out.pdf
qpdf --check-linearization 400dpi_90-out.pdf
上面的结果如下图所示:
400dpi_90.pdf:PDF 文档,版本 1.4
400dpi_90.pdf 未线性化
400dpi_90-out.pdf:PDF文档,1.6版
400dpi_90-out.pdf:没有线性化错误
最佳答案
关于java - 如何在 Java 中使用 pdfbox 2.0 创建线性化(快速 Web View )pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39792694/