java实现pdf转word

这篇具有很好参考价值的文章主要介绍了java实现pdf转word。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

1.java实现pdf转word。
2.纯免费开源。
3.pdf解析完会生成word文件和图片文件夹。
4.无页码限制,文本类型生成到word中,图片生成到图片文件夹中。
5.弊端:需手动将图片与文本整合成一个word文件。
仅提供一个pdf转word的实现方案,代码粗糙,老铁轻喷。
jar包地址:https://download.csdn.net/download/wyazyf/88917191
文章来源地址https://www.toymoban.com/news/detail-838157.html

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>wy</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox-tools</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>jbig2-imageio</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.intellij</groupId>
            <artifactId>forms_rt</artifactId>
            <version>7.0.3</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>
</project>

启动入口

import com.sun.deploy.util.StringUtils;
import org.apache.poi.util.StringUtil;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

/**
 * @author wy
 * @create 2024-02-20 15:57
 */
public class test {
    private JPanel Panel;
    private JLabel JLabel;
    private JButton button;
    private JButton selectButton;
    private JFileChooser jf ;

    public static void main(String[] args) {

        JFrame frame = new JFrame("test");
        JPanel panel = new test().Panel;
        panel.setSize(500,300);
        frame.setContentPane(panel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.pack();
        frame.setSize(400, 200);
        // frame.setLocation(3);
        frame.setVisible(true);

    }

    public test() {
        selectButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                FileFilterTest fileFilter=new FileFilterTest ();  //创建过滤器对象
                jf=new JFileChooser();
                jf.setFileFilter(fileFilter);   //对JFileChooser设置过滤器
                jf.showOpenDialog(null);
            }
        });
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(jf==null){
                    JOptionPane.showMessageDialog(Panel, "请选择一个pdf文件", "标题",JOptionPane.WARNING_MESSAGE);
                }
                File selectedFile = jf.getSelectedFile(); // 获取选择的文件
                String fielPath = selectedFile.getPath();
                if(fielPath==null||(fielPath!=null && fielPath=="")){
                    JOptionPane.showMessageDialog(Panel, "请选择一个pdf文件", "标题",JOptionPane.WARNING_MESSAGE);
                }
                try {
                    ConvertPdfToWordWithFlowableStructure pdfToWord=new ConvertPdfToWordWithFlowableStructure();
                    pdfToWord.pdfToWordOrPhoto(fielPath);
                } catch (IOException ioException) {
                    ioException.printStackTrace();
                }
            }
        });
    }

}

过滤器对象

/**
 * @author wy
 * @create 2024-02-20 16:24
 */
public class FileFilterTest extends javax.swing.filechooser.FileFilter{
    public boolean accept(java.io.File f) {
        if (f.isDirectory())return true;
        return f.getName().endsWith(".pdf");  //设置为选择以.pdf为后缀的文件
    }
    public String getDescription(){
        return ".pdf";
    }
}

ConvertPdfToWordWithFlowableStructure转换实现类

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;

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

public class ConvertPdfToWordWithFlowableStructure {

    public void pdfToWordOrPhoto(String pdfFile) throws IOException {

        try
        {
            // String pdfFile = "C:\\Users\\Administrator\\Desktop\\1.pdf";
            PDDocument doc = PDDocument.load(new File(pdfFile));
            int pagenumber = doc.getNumberOfPages();
            pdfFile = pdfFile.substring(0, pdfFile.lastIndexOf("."));
            String fileName = pdfFile + ".doc";
            File file = new File(fileName);
            if (!file.exists())
            {
                file.createNewFile();
            }
            FileOutputStream fos = new FileOutputStream(fileName);
            Writer writer = new OutputStreamWriter(fos, "UTF-8");
            PDFTextStripper stripper = new PDFTextStripper();
            stripper.setSortByPosition(true);// 排序
            stripper.setStartPage(1);// 设置转换的开始页
            stripper.setEndPage(pagenumber);// 设置转换的结束页
            stripper.writeText(doc, writer);
            writer.close();

            System.out.println("pdf文字转换word成功!");
            //开始下载图片
            PDFRenderer pdfRenderer = new PDFRenderer(doc);

            for(int i = 0;i<pagenumber;i++){

                // 设置页数(首页从0开始)、每英寸点数、图片类型
                BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(i, 300, ImageType.RGB);
                String currentCoverPath = pdfFile + "/" + i + "." + "png";

                // 创建图片文件对象
                File file1 = new File(currentCoverPath);
                if (!file1.getParentFile().exists()) {
                    file1.getParentFile().mkdirs();
                }
                if (!file1.exists()) {
                    file1.createNewFile();
                }else{
                    file1.delete();
                    file1.createNewFile();
                }
                // 将图片写入到图片对象中
                ImageIOUtil.writeImage(bufferedImage, currentCoverPath, 300);
            }
            doc.close();
            System.out.println("pdf图片下载成功!");
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

到了这里,关于java实现pdf转word的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理

    感谢小伙伴儿的分享: ● 不羁 ● 郭中天 整合调整后的工具类Gitee地址:https://gitee.com/yuanzhengme/java_application_aspose_demo ● WordToPdfUtil用于将word文档转换为pdf格式的工具类 ● ExcelToPdfUtil用于将excel文档转换为pdf格式的工具类 ● PdfToImageUtil用于将pdf文档转换为image格式的工具类

    2024年01月24日
    浏览(86)
  • 在线word转pdf免费去哪里好?这个网站可以轻松实现!

    很多朋友在保存word文档内容的时候,都想把它转换为pdf格式的,因为这种文档比较安全,不能轻易的进行修改,那么在线word转pdf免费去哪里好呢?这个网站可以轻松实现,下面就来说说。 在线word转pdf免费去哪里好? 我们可以进行在线转换来将word文件转换成pdf文件,这个方法

    2024年02月11日
    浏览(55)
  • Java中word转Pdf工具类

    背景:     最近做的一个项目中,对于word转Pdf用的地方很多,特此记录 搭建总图:  代码部分:  1.需要的jar包: 注:下载好这个jar包后,在项目的根目录新建一个lib文件夹,然后放入该jar包 pom.xml中引用   2.需要的xml文件 内容:  注:将该xml文件放到resources下面  3.工具

    2024年02月11日
    浏览(35)
  • PDF.js - 免费开源的 JavaScript 读取、显示 PDF 文档的工具库,由 Mozilla 开发并且持续维护

    最近新项目需要处理 PDF,研究了 PDf.js 之后觉得很不错,于是写篇文章推荐给大家。 PDF.js 的功能和它的名字一样简单,是一个使用 HTML5 技术来让前端网页支持读取、解析和显示 PDF 文档的 JS 工具库。这个项目由大名鼎鼎的 Mozilla 组织开发并且更新维护着,没错,就是那个开

    2024年01月21日
    浏览(53)
  • Java word文档转图片 || word转pdf两行代码搞定

    目录 一、首先引入我们需要的依赖。 二、准备一个word文档模板,使用{{}}定义我们需要填充的数据。 三、word文档动态数据填充转换图片demo示例 四、poi-tl(poi template language)Word模板引擎 五、把demo示例简化封装成Controller接口层 六、word文档生成动态数据转换成pdf 一、首先引

    2024年02月06日
    浏览(52)
  • Java 删除PDF页面 (免费工具分享)

    对PDF页面的增删通常需要借助专门的工具,而这些工具一般需要付费才能使用。那么我们可以通过Java代码免费实现这一功能吗?答案是肯定的。这篇文章就教大家如何使用一个免费的国产Java库来删除PDF中的指定页面或者删除PDF中的空白页。   1. 首先,我们需要先将免费库

    2024年02月05日
    浏览(47)
  • Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类

    一、写在前面 最近在项目中使用打印功能,发现这个功能我已经写过多次了,下面这个文章的发步日期在2020年,不得不感慨时间之快啊。 https://blog.csdn.net/weixin_43238452/article/details/109636200?spm=1001.2014.3001.5501 下面介绍一下应用场景:这次项目依旧是springboot项目,使用ftl模版生

    2024年02月15日
    浏览(59)
  • 使用开源工具ProGuard实现Java代码混淆

    参考文档: ProGuard官网 ProGuardMaven插件文档 ProGuard官方配置文档 ProGuard配置中文文档 CSDN-ProGuard使用演示 知乎-ProGuard使用演示 代码混淆是将计算机程序的代码转换成一种功能上等价,但是难以阅读和理解的形式。 符号混淆 将函数的符号,如函数名、变量名去除或混淆。 控制

    2024年02月07日
    浏览(38)
  • java实现图片、word、pdf等多文件融合到一个pdf(word转pdf)

    本文主要介绍了srpingboot如何将 jpg、jpeg、png、pdf、docx、doc六种格式文件合并输出成一个pdf文件 以及 word文档如何转换为pdf ,关键是 开源免费 在日常工作学习中免不了会涉及到将多种格式的文件合并为一个pdf或者是将word文档、ppt、excel等转换为pdf。废话不多说,直接上代码

    2024年02月15日
    浏览(47)
  • java实现pdf转word

    1.java实现pdf转word。 2.纯免费开源。 3.pdf解析完会生成word文件和图片文件夹。 4.无页码限制,文本类型生成到word中,图片生成到图片文件夹中。 5.弊端:需手动将图片与文本整合成一个word文件。 仅提供一个pdf转word的实现方案,代码粗糙,老铁轻喷。 jar包地址:https://downlo

    2024年03月10日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包