• Java实现PDF读取


    在ppm.xml中引用pdfbox

      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      4.0.0

      com.cicdtest
      cicdtest
      0.0.1-SNAPSHOT
      jar

      cicdtest
      http://maven.apache.org

     
        UTF-8
     

     
       
          junit
          junit
          3.8.1
          test
       

       
        org.apache.pdfbox
        pdfbox
        2.0.26
        

     

      

     

    package pdf.txt;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;

    import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
    import org.apache.pdfbox.io.RandomAccessRead;
    import org.apache.pdfbox.pdfparser.PDFParser;
    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.text.PDFTextStripper;


    public class PDF {

        public static void main(String[] args){
            String path="";
            path = "D:/Project/e-Statement/estatement_pdf/2021_07_09_estatement/8000054710_est_9ec4a09254a67c1690837ef62f64f9e9.pdf";
            PDF p = new PDF();
            String content= p.Get_PDF_Content(path);
            System.out.println(content);
            p.save_result_to_txt(content);
        }

        public  String save_result_to_txt (String content) {
            String filepath="D:/PDF.txt";
            try {
                File file = new File(filepath);
                if (!file.exists()) {
                    file.createNewFile();
                }
                FileOutputStream outStream = new FileOutputStream(file);
                outStream.write(content.trim().getBytes());
                outStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return filepath;
        }
        
        public  String save_result_to_txt_with_path (String path) {
            String content = Get_PDF_Content(path);
            File f = new File(path);
            String folder =f.getParentFile().toString();
            String file_name =f.getName();
            String filepath=folder +"/"+file_name.replace(".pdf", ".txt");
            try {
                File file = new File(filepath);
                if (!file.exists()) {
                    file.createNewFile();
                }
                FileOutputStream outStream = new FileOutputStream(file);
                outStream.write(content.trim().getBytes());
                outStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return filepath;
        }
        
        public String read_PDF(String path) {
            String test = "";
            File file = new File(path);
            FileInputStream in = null;
            try {
                in =  new FileInputStream(file);
                RandomAccessRead randomAccessRead = new RandomAccessBufferedFileInputStream(in);
                PDFParser parser = new PDFParser(randomAccessRead);
                parser.parse();
                PDDocument pdDocument = parser.getPDDocument();
                PDFTextStripper stripper = new PDFTextStripper();
                test = stripper.getText(pdDocument);
                //System.out.println(test);
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return test;
        }

        public String Get_PDF_Content(String path) {
            File pdfFile = new File(path);
            PDDocument document = null;
            String content = "";
            try
            {
                // 方式一:
                /**
                InputStream input = null;
                input = new FileInputStream( pdfFile );
                //加载 pdf 文档
                PDFParser parser = new PDFParser(new RandomAccessBuffer(input));
                parser.parse();
                document = parser.getPDDocument();
                 **/

                // 方式二:
                document=PDDocument.load(pdfFile);

                // 获取页码
                int pages = document.getNumberOfPages();
                // 读文本内容
                PDFTextStripper stripper=new PDFTextStripper();
                // 设置按顺序输出
                stripper.setSortByPosition(true);
                stripper.setStartPage(1);
                stripper.setEndPage(pages);
                content = stripper.getText(document);
                //System.out.println(content);     
                document.close();

                //if(content.contains("Reversal")||content.contains("refund")||content.contains("Invaild")) {
                //System.out.println("Reversal:  "+path);
                //}
            } catch (Exception e) {
                System.out.println(e);
            }

            return content;
        }

    }

  • 相关阅读:
    DataSheet专业名词解读——每天10个专业名词(1)23.9.18 (NXP)MPC5604B/C
    Open3D Ransac拟合空间直线(python详细过程版)
    Mybatis关联(嵌套)查询与延迟加载
    一个高性能、低内存文件上传流.Net组件
    YoloV5和YoloV8的魔力成为你在CS:GO2中的秘密武器。四步完成,CSGO2人物图像识别
    LDAP、OpenLDAP和Active Directory的区别(上)
    嵌入式学习笔记(27)uart stdio的移植
    C++中GDAL批量创建多个栅格图像文件并批量写入数据
    使用docker部署nginx
    react使用 Ant ui框架
  • 原文地址:https://blog.csdn.net/qq_30273575/article/details/126966528