Rumah >Java >javaTutorial >Bagaimanakah cara menukar fail PDF kepada imej menggunakan PDFBox?

Bagaimanakah cara menukar fail PDF kepada imej menggunakan PDFBox?

Barbara Streisand
Barbara Streisandasal
2024-11-23 04:20:18388semak imbas

How do I convert PDF files into images using PDFBox?

Cara Menukar Fail PDF kepada Imej Menggunakan PDFBox

PDFBox, projek Apache, menawarkan penyelesaian yang berkuasa untuk menukar dokumen PDF kepada imej individu . Keupayaan ini boleh menjadi sangat berharga untuk tugas seperti pengekstrakan dan pemprosesan imej.

Kunci kepada proses penukaran ini terletak pada kelas PDDocument, yang berfungsi sebagai asas untuk mengakses dan memanipulasi dokumen PDF. Setelah PDF dimuatkan ke dalam objek PDDocument, halamannya boleh diakses melalui kaedah getAllPages().

Kod Contoh

Berikut ialah contoh yang menunjukkan cara menukar PDF halaman menjadi imej:

Penyelesaian untuk 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();
    }
}

Penyelesaian untuk 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();
    }
}

Penyelesaian untuk 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();
    }
}

Dengan memanfaatkan contoh kod ini, anda boleh dengan mudah menukar dokumen PDF kepada satu siri imej individu, membolehkan anda membuka kunci fleksibiliti dan kemudahan yang berkaitan dengan aliran kerja pemprosesan imej.

Atas ialah kandungan terperinci Bagaimanakah cara menukar fail PDF kepada imej menggunakan PDFBox?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn