aspose word转换pdf文件后将pdf文件转换为图片png

aspose word转换pdf文件后将pdf文件转换为图片png

需要的jar

aspose-cells-8.5.2.jar

aspose-pdf-15.8.0.jar

aspose-word-15.8.0.jar

aspose-words-19.5jdk.jar

链接:aspose word模板文件生成pdf
https://www.cnblogs.com/oktokeep/p/16615900.html

package com.example.core.mydemo.aspose;

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

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

public class PdfToImage {
    public static void main(String[] args) {
        String path = "D:\\pdf\\40255371604299_1_sign.pdf";
        String path2 = "D:\\pdf";
        pdfFileToImages(path,path2);

    }

    public static void pdfFileToImages(String filePath, String cachePath) {
        try {
            PDDocument pd = PDDocument.load(new File(filePath));
            PDFRenderer pdfRenderer = new PDFRenderer(pd);
            /* dpi越大转换后越清晰,相对转换速度越慢 */
            int pages = pd.getNumberOfPages();
            System.out.println("pdf总共多少页-----" + pages);
            for (int page = 0; page < pages; ++page) {
                BufferedImage image = pdfRenderer.renderImageWithDPI(page, 96, ImageType.RGB);
                //将图片数据保存为PNG格式文档
                File file= new File(cachePath + File.separator + ("new"+page) + ".png");
                ImageIO.write(image, "png", file);
                System.out.println(file.getAbsolutePath());
                System.out.println("PDF文档转PNG图片成功!");
            }
        }  catch (Exception e) {
            e.printStackTrace();
        }
    }

}

另外一种方法不适用,将word中的图片转换为图片,而不是将word文档转换为图片

package com.example.core.mydemo.aspose;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;

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

import javax.imageio.ImageIO;

/**
 * 将word中的图片转换为图片,而不是将word文档转换为图片
 * https://blog.51cto.com/u_16213439/8905749
 */
public class WordToImageConverter {
    public static void main(String[] args) {
        try {
            String wordFilePath = "D:\\pdf\\testword.docx";
            String outputImagePath = "D:\\pdf\\image33.png";

            XWPFDocument document = new XWPFDocument(new FileInputStream(wordFilePath));

            List<XWPFPictureData> pictures = document.getAllPictures();
            System.out.println("pictures size=" + pictures.size());

            for (int i = 0; i < pictures.size(); i++) {
                XWPFPictureData picture = pictures.get(i);
                byte[] pictureData = picture.getData();
                BufferedImage image = ImageIO.read(new ByteArrayInputStream(pictureData));

                String imageFileName = outputImagePath + "_" + (i + 1) + ".png";
                if(image != null) {
                    ImageIO.write(image, "png", new FileOutputStream(new File(imageFileName)));
                }
            }

            document.close();
            System.out.println("image ok 2");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

posted on 2024-09-07 15:25  oktokeep  阅读(22)  评论(0编辑  收藏  举报