首页 >Java >java教程 >如何使用 PDFBox 将 PDF 文件转换为图像?

如何使用 PDFBox 将 PDF 文件转换为图像?

Barbara Streisand
Barbara Streisand原创
2024-11-23 04:20:18334浏览

How do I convert PDF files into images using PDFBox?

如何使用 PDFBox 将 PDF 文件转换为图像

PDFBox 是一个 Apache 项目,提供了将 PDF 文档转换为单个图像的强大解决方案。此功能对于图像提取和处理等任务特别有价值。

此转换过程的关键在于 PDDocument 类,它是访问和操作 PDF 文档的基础。一旦 PDF 被加载到 PDDocument 对象中,就可以通过 getAllPages() 方法访问其页面。

示例代码

这里是一个演示如何转换 PDF 的示例页面转换为图像:

PDFBox 解决方案1.8.*:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;

import java.awt.image.BufferedImage;
import java.io.File;

public class PdfToImageConverter {

    public static void main(String[] args) throws Exception {
        String pdfFilename = "your_pdf_file.pdf";
        PDDocument document = PDDocument.loadNonSeq(new File(pdfFilename), null);
        List<PDPage> pdPages = document.getDocumentCatalog().getAllPages();
        int page = 0;
        for (PDPage pdPage : pdPages) {
            ++page;
            BufferedImage bim = pdPage.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
            ImageIOUtil.writeImage(bim, pdfFilename + "-" + page + ".png", 300);
        }
        document.close();
    }
}

PDFBox 2.0 解决方案:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;

import java.awt.image.BufferedImage;
import java.io.File;

public class PdfToImageConverter {

    public static void main(String[] args) throws Exception {
        String pdfFilename = "your_pdf_file.pdf";
        PDDocument document = PDDocument.load(new File(pdfFilename));
        PDFRenderer pdfRenderer = new PDFRenderer(document);
        for (int page = 0; page < document.getNumberOfPages(); ++page) {
            BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
            ImageIOUtil.writeImage(bim, pdfFilename + "-" + (page + 1) + ".png", 300);
        }
        document.close();
    }
}

PDFBox 3.0 解决方案:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;

import java.awt.image.BufferedImage;
import java.io.File;

public class PdfToImageConverter {

    public static void main(String[] args) throws Exception {
        String pdfFilename = "your_pdf_file.pdf";
        PDDocument document = Loader.loadPDF(new File(pdfFilename));
        PDFRenderer pdfRenderer = new PDFRenderer(document);
        for (int page = 0; page < document.getNumberOfPages(); ++page) {
            BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
            ImageIOUtil.writeImage(bim, pdfFilename + "-" + (page + 1) + ".png", 300);
        }
        document.close();
    }
}

通过利用这些代码示例,您可以轻松地将 PDF 文档转换为一系列单独的图像,使您能够释放与图像处理工作流程相关的灵活性和便利性。

以上是如何使用 PDFBox 将 PDF 文件转换为图像?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn