【问题标题】:Get a page from pdf and save it to an image file with itext从pdf中获取页面并使用itext将其保存到图像文件中
【发布时间】:2012-10-07 18:19:08
【问题描述】:

有一个pdf文件,我想将第2页作为图像导入并保存为jpeg文件。 有没有可能以及怎么做?

这是我如何导入页面的代码:

Document document = new Document();
File file = File.createTempFile("", "");
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
document.open();

final int backPage = 2;
PdfReader reader = new PdfReader(pdf.getAbsolutePath());
PdfImportedPage importedPage = writer.getImportedPage(reader, backPage);
com.lowagie.text.Image image = com.lowagie.text.Image.getInstance(importedPage);

现在我得到一个 image 实例,但我不知道如何将它写入 jpeg 文件。

【问题讨论】:

标签: java image import itext


【解决方案1】:

Image.getInstance(importedPage) 不会(可能会假设)将指定页面呈现为某个位图,而只是创建一个包装对象以使导入的页面更容易添加到另一个 PDF。

iText 不是 PDF 渲染工具,尤其不是旧的 com.lowagie 变体。您可能想查看不同的产品,例如JPedal.

【讨论】:

    【解决方案2】:

    显然(根据1T3XT BVBA),您只能从 PDF 页面保存 iText 图像,而不是光栅图像。 您可以将其存储在任何地方,如果您稍后将其用于将其放在另一个 PDF 页面中...否则,您将不得不使用 JPedal 之类的工具:

    http://www.idrsolutions.com/convert-pdf-to-images/

    ====================================

    编辑:也许 PDFBox 也可以为您做到!:

    http://pdfbox.apache.org/commandlineutilities/PDFToImage.html

    http://gal-levinsky.blogspot.it/2011/11/convert-pdf-to-image-via-pdfbox.html

    【讨论】:

    • 谢谢,可惜JPedal不是免费的,而且很贵。
    • 同意。另一种方法是从您的应用程序中运行众多免费软件命令行转换器之一(例如,用于 Unix)以在文件系统上完成工作,然后获取生成的文件......但它不是纯 java ,并且在此过程中可能会出现许多问题...
    • 我稍后会尝试pdfbox。由于它对汉字的支持不是很好,我不确定它是否能生成正确的图像。
    猜你喜欢
    • 2013-03-22
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多