美文网首页
pdf转图片程序(java实现)

pdf转图片程序(java实现)

作者: 寻找大海的鱼 | 来源:发表于2018-08-11 11:39 被阅读0次

所需要的jar包如下,可自行从maven官网上下载


所需要的jar包
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.imageio.ImageIO;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;

public class Test {

    public static void main(String[] args){
        String filePath = "D://test.pdf";
        List<String> imageList = pdfToImagePath(filePath);
        Iterator<String> iterator = imageList.iterator();
        while(iterator.hasNext()){
 
            System.out.println(iterator.next());
        }
//        pdfToImage(filePath);
    }
    public static List<String> pdfToImagePath(String filePath){
        List<String> list = new ArrayList<>();
        String fileDirectory = filePath.substring(0,filePath.lastIndexOf("."));//获取去除后缀的文件路径
 
        String imagePath;
        File file = new File(filePath);
        try {
            File f = new File(fileDirectory);
            if(!f.exists()){
                f.mkdir();
            }
            PDDocument doc = PDDocument.load(file);
            PDFRenderer renderer = new PDFRenderer(doc);
            int pageCount = doc.getNumberOfPages();
            for(int i=0; i<pageCount; i++){
                // 方式1,第二个参数是设置缩放比(即像素)
                // BufferedImage image = renderer.renderImageWithDPI(i, 296);
                // 方式2,第二个参数是设置缩放比(即像素)
                BufferedImage image = renderer.renderImage(i, 1.25f);  //第二个参数越大生成图片分辨率越高,转换时间也就越长
                imagePath = fileDirectory + "/"+i + ".jpg";
                ImageIO.write(image, "PNG", new File(imagePath));
                list.add(imagePath);
            }
            doc.close();              //关闭文件,不然该pdf文件会一直被占用。    
        } catch (IOException e) {
            e.printStackTrace();
        }
        return list;
    }

}

相关文章

网友评论

      本文标题:pdf转图片程序(java实现)

      本文链接:https://www.haomeiwen.com/subject/acxdbftx.html