将pdf保存为图片

使用jpedal的目的:

  • 针对有些使用PDFBox默认的方法无法正常将PDF转为图片的情况

加载环境依赖

<dependency>
            <groupId>org.jpedal</groupId>
            <artifactId>jpedal-lgpl</artifactId>
            <version>4.74b27</version>
</dependency>

测试代码演示

import org.jpedal.PdfDecoder;
import org.jpedal.exception.PdfException;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * 作者:xxx
 * 时间:2022/11/24  16:56/**
 *
 * @author xxx
 * @data 2022/11/24 16:56
 */
public class Test {
    @org.junit.jupiter.api.Test
    public void test() {
        PdfDecoder decode_pdf = new PdfDecoder(true);
        try {
            decode_pdf.openPdfFile("c:\\Users\\pengxx\\Desktop\\01051.pdf"); //file
// 以下注释为打开PDF文件的多种方式
//   decode_pdf.openPdfFile("C:/jpedalPDF.pdf", "password"); //encrypted file
//      decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF
//      decode_pdf.openPdfFileFromURL("http://www.mysite.com/jpedalPDF.pdf",false);
//      decode_pdf.openPdfFileFromInputStream(in, false);
            int start = 1, end = decode_pdf.getPageCount();
            for (int i = start; i < end + 1; i++) {
// 将第几页变成图片
                BufferedImage img = decode_pdf.getPageAsImage(15);
                try {
// 使用ImageIO保存
                    ImageIO.write(img, "png", new File("C:\\jpedal_image.png"));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            decode_pdf.closePdfFile();
        } catch (PdfException e) {
            e.printStackTrace();
        }
    }
}
posted @ 2023-01-13 10:06  萧泽  阅读(105)  评论(0)    收藏  举报