首頁 >Java >java教程 >如何使用 PDFBox 將 PDF 檔案轉換為影像?

如何使用 PDFBox 將 PDF 檔案轉換為影像?

Barbara Streisand
Barbara Streisand原創
2024-11-23 04:20:18389瀏覽

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