前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >aspose word转换pdf文件后将pdf文件转换为图片png

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

作者头像
oktokeep
发布2024-10-09 12:33:24
900
发布2024-10-09 12:33:24
举报
文章被收录于专栏:第三方工具

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://cloud.tencent.com/developer/article/2455660

代码语言:javascript
复制
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文档转换为图片

代码语言:javascript
复制
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();
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档