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