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

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

Barbara Streisand
发布: 2024-11-23 04:20:18
原创
382 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板