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