编写java实用工具-针对未压缩的pdf转word,(java实现),压缩过的pdf勿进

压缩过的pdf勿进!
压缩过的pdf勿进!
压缩过的pdf勿进!
重要的事情说三遍。

主要是提供两种解决办法

第一种:转成同级目录word
第二种:直接console打印

java的好处之一就是取之不尽的第三方包
这个先介绍pdf转word的方法:
利用的依赖包:
pdfbox.jar

<dependency>
           <groupId>org.apache.pdfbox</groupId>
           <artifactId>pdfbox</artifactId>
           <version>2.0.16</version>
</dependency>

利用的类主要是:
org.apache.pdfbox.pdmodel.PDDocument
org.apache.pdfbox.text.PDFTextStripper

方法1:
核心代码是PDF类

package com.j;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.*;

/**
 * @author joker
 * @version 1.0
 * @description pdf转word
 * @date 2020-03-01 -- 12:01
 */
class Th implements Runnable {
    public boolean flag = true;

    public void run() {
        System.out.println("转换中");
        while (true) {
            if (!flag) {
                System.out.println();
                System.out.println("转换word成功!");
                return;
            }
            System.out.print(".#");
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class PDF {

    public static void main(String[] args) {
        try {
            Th th = new Th();
            new Thread(th).start();
            String pdfFile = "D:\\360安全浏览器下载\\多媒体教材.pdf";
            PDDocument doc = PDDocument.load(new File(pdfFile));
            int pagenumber = doc.getNumberOfPages();
            pagenumber=10;
            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);
            PDFTextStripper stripper = new PDFTextStripper();
            stripper.setSortByPosition(true);// 排序
            stripper.setStartPage(5);// 设置转换的开始页
            stripper.setEndPage(pagenumber);// 设置转换的结束页
            stripper.writeText(doc, writer);//写到word
            writer.close();
            doc.close();

            th.flag=false;
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}

方法2:

package com.j;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.text.PDFTextStripperByArea;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class ReadPDF {

    public static void main(String[] args) throws InvalidPasswordException {
        //本地测试入口
        System.out.println(PDFtoStringArr("D:\\本学期课程\\操作系统\\sx\\1.pdf"));

    }


    public static String PDFtoStringArr(String file) {

        try {
            PDDocument document = PDDocument.load(new File(file));
            document.getClass();

            if (!document.isEncrypted()) {
                PDFTextStripperByArea stripper = new PDFTextStripperByArea();
                stripper.setSortByPosition(true);
                PDFTextStripper tStripper = new PDFTextStripper();

                String pdfFileInText = tStripper.getText(document);
				System.out.println(pdfFileInText);
                String[] lines = pdfFileInText.split("\\r?\\n"); //去换行和回车符

                //循环打印String数组
                for (String line : lines) {
                    System.out.println(line);

                }


            }

        } catch (IOException e) {

            e.printStackTrace();
        }

        return null;
    }

}

利用java,丰富自己的解决方法!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值