使用pdfbox在java中将pdf文件转换为图像时缺少文本

p u*_*ran 5 java pdf pdfbox javax.imageio apache-commons-logging

我想将 PDF 页面转换为图像文件。当我使用 java 将 PDF 页面转换为图像时,文本丢失。

我想要转换46_2.pdf 的文件在转换后显示为46_2.png

代码:

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;

import javax.imageio.ImageIO;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

public class ConvertPDFPageToImageWithoutText {
    public static void main(String[] args) {
        try {
            String oldPath = "C:/PDFCopy/46_2.pdf";
            File oldFile = new File(oldPath);
           if (oldFile.exists()) {

            PDDocument document = PDDocument.load(oldPath);
            List<PDPage> list = document.getDocumentCatalog().getAllPages();

            for (PDPage page : list) {
                BufferedImage image = page.convertToImage();
                File outputfile = new File("C:/PDFCopy/image.png");
                ImageIO.write(image, "png", outputfile);
                document.close();
            }

        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}
}
Run Code Online (Sandbox Code Playgroud)

cha*_*der 2

由于您使用的是 PDFBox,请尝试使用PDFImageWriter.writeToImage而不是 PDPage.convertToImage。这篇文章似乎与您想做的事情相关。