java pdf转txt【完整代码包含jar包】

一、POM
二、代码
三、效果

一、POM文件

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

二、代码

package com.ct.util;


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

import java.io.*;

public class Pdf2TextUtil {


    /**
     * 传入一个pdf文件str(文件路径)
     * @param fileStr
     * @throws Exception
     */
    public static String readPdf(String fileStr) throws Exception {
        // 是否排序
        boolean sort = false;
        File pdfFile=new File(fileStr);
        // 输入文本文件名称
        String textFile = null;
        // 编码方式
        String encoding = "UTF-8";
        // 开始提取页数
        int startPage = 1;
        // 结束提取页数
        int endPage = Integer.MAX_VALUE;
        // 文件输入流,生成文本文件
        Writer output = null;
        // 内存中存储的PDF Document
        PDDocument document = null;
        try {

            //注意参数是File。
            document = PDDocument.load(pdfFile);

            // 以原来PDF的名称来命名新产生的txt文件
            textFile=fileStr.replace(".pdf",".txt");

            // 文件输入流,写入文件倒textFile
            output = new OutputStreamWriter(new FileOutputStream(textFile),encoding);
            // PDFTextStripper来提取文本
            PDFTextStripper stripper = null;
            stripper = new PDFTextStripper();
            // 设置是否排序
            stripper.setSortByPosition(sort);
            // 设置起始页
            stripper.setStartPage(startPage);
            // 设置结束页
            stripper.setEndPage(endPage);
            // 调用PDFTextStripper的writeText提取并输出文本
            stripper.writeText(document, output);

            System.out.println(" pdf转txt成功!");
            return textFile;
        } finally {
            if (output != null) {
                // 关闭输出流
                output.close();
            }
            if (document != null) {
                // 关闭PDF Document
                document.close();
            }
        }
    }

    public static void main(String[] args) {
        try {
            //单个pdf转txt
            String filePath="G:\\test\\分子结构模糊识别文献\\Current challenges in development of.pdf";
            String txtStr = readPdf(filePath);

//            //遍历读取文件夹下的文件
//            String strPath="G:\\test\\publication-tran1";
//            List<File> fileList = FileUtil.getFileList(strPath);
//            for (int i=0;i<fileList.size();i++){
//                try {
//                    String txtStr = readPdf(fileList.get(i).getAbsolutePath());
//                } catch (Exception e) {
//                    System.out.println("出错:"+fileList.get(i).getAbsolutePath());
//                }
//            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

三、效果

运行后生成的txt文件如下:
在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值