zoukankan      html  css  js  c++  java
  • 把pdf的内容转化为txt文件

    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.util.PDFTextStripper;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class PdfUtil {
    
        /**
         * 传入pdf 文件所在的位置,然后,在当前文件夹中,生成该pdf的文本信息。 txt文件的名字和pdf的名字是相同的 返回txt文件的路径
         * @param file
         * @throws Exception
         */
        public static String readFdf(String file) throws Exception {
            // 是否排序
            boolean sort = true;
            // pdf文件名
            String pdfFile = file;
            // 输入文本文件名称
            String textFile = null;
            // 编码方式
            String encoding = "UTF-8";
            // 开始提取页数
            int startPage = 1;
            // 结束提取页数
            int endPage = Integer.MAX_VALUE;
            // 文件输入流,生成文本文件
            Writer output = null;
            // 内存中存储的PDF Document
            PDDocument document = null;
    
            try {
                try {
                    // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件
                    URL url = new URL(pdfFile);
                    //注意参数已不是以前版本中的URL.而是File。
                    document = PDDocument.load(pdfFile);
                    // 获取PDF的文件名
                    String fileName = url.getFile();
                    // 以原来PDF的名称来命名新产生的txt文件
                    if (fileName.length() > 4) {
                        File outputFile = new File(fileName.substring(0, fileName
                                .length() - 4)
                                + ".txt");
                        textFile = outputFile.getName();
                    }
                } catch (MalformedURLException e) {
                    // 如果作为URL装载得到异常则从文件系统装载
                    //注意参数已不是以前版本中的URL.而是File。
                    document = PDDocument.load(pdfFile);
                    if (pdfFile.length() > 4) {
                        textFile = pdfFile.substring(0, pdfFile.length() - 4)
                                + ".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);
            } finally {
                if (output != null) {
                    // 关闭输出流
                    output.close();
                }
                if (document != null) {
                    // 关闭PDF Document
                    document.close();
                }
            }
            return textFile;
        }
    }
         <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>1.8.10</version>
            </dependency>
  • 相关阅读:
    Python startswith()函数 与 endswith函数
    Oracle spool 小结
    表空间(TableSpace)
    Python logger模块
    Mysql rpm安装
    Python json与pickle
    Python 生成器总结
    Python 装饰器的总结
    eclipse 乱码问题总结
    Eclipse 中出现红色下划波浪线与红色感叹号
  • 原文地址:https://www.cnblogs.com/prader6/p/11977328.html
Copyright © 2011-2022 走看看