我有一些.jpg文件用於創建pdf。我一直在尋找現在幾個小時,沒有太多的運氣找到任何如何線性化PDF的方法!我很難找到有關如何做到這一點的任何文檔或指南,現在我希望能夠在這裏獲得一些幫助。我也研究過pdfbox 2.0 API文檔,但找不到任何有用的東西。我之前使用過pdfbox,但主要用於分割或合併pdf。 這是我到目前爲止寫:如何在Java中使用pdfbox 2.0創建線性化(快速Web查看)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();
}
}
}
任何建議都非常感謝!
編輯與解決方案: 我已經嘗試qpdf由Tilman Hausherr建議,它解決了我的問題。這裏有一個例子:
file 400dpi_90.pdf qpdf --show-linearization 400dpi_90.pdf qpdf --linearize --min-version=1.6 400dpi_90.pdf 400dpi_90-out.pdf file 400dpi_90-out.pdf qpdf --check-linearization 400dpi_90-out.pdf
以上的結果如下所示:
400dpi_90.pdf: PDF document, version 1.4 400dpi_90.pdf is not linearized 400dpi_90-out.pdf: PDF document, version 1.6 400dpi_90-out.pdf: no linearization errors
這就是我所害怕的。當我知道更多時,我會嘗試給qpdf一個眼神,然後回來。謝謝! –