gpt4 book ai didi

java - 如何使用 PDDocument.loadNonSeq,大型 pdf 剥离器/解析文本技术

转载 作者:行者123 更新时间:2023-12-01 11:05:14 31 4
gpt4 key购买 nike

我有一些关于解析 pdf 和 fd 的问题:

  1. 使用的目的是什么

PDDocument.loadNonSeq 方法包含临时/临时文件?

  • 我有一个很大的 pdf 文件,我需要解析它并获取文本内容。我使用 PDDocument.load() 然后使用 PDFTextStripper 逐页提取数据(pdfstripper 有 setStartPage(n)setEndPage (n) 其中n=n+1(每个页面循环)。使用 loadNonSeq 代替 load 是否对内存更有效?
  • 例如

    File pdfFile =  new File("mypdf.pdf");
    File tmp_file = new File("result.tmp");
    PDDocument doc = PDDocument.loadNonSeq(pdfFile, new RandomAccessFile(tmp_file, READ_WRITE));
    int index=1;
    int numpages = doc.getNumberOfPages();
    for (int index = 1; index <= numpages; index++){
    PDFTextStripper stripper = new PDFTextStripper();
    Writer destination = new StringWriter();
    String xml="";
    stripper.setStartPage(index);
    stripper.setEndPage(index);
    stripper.writeText(this.doc, destination);
    .... //filtering text and then convert it in xml
    }

    上面的代码是否正确使用了 loadNonSeq,并且在不占用大量内存的情况下逐页阅读 PDF 是否是一个好习惯?我使用逐页读取的方式,因为我需要使用 DOM 内存在 XML 中写入文本(使用剥离技术,我决定为每个页面生成一个 XML)

    最佳答案

    1. what is the purpose of using PDDocument.loadNonSeq method that include a scratch/temporary file?

    PDFBox 实现了两种读取 PDF 文件的方法。

    • loadNonSeq 是加载文档的方式
    • load 是不应加载文档的方式,但人们可能会尝试通过这种方式修复交叉引用损坏的文件

    在2.0.0开发分支中,以前用于loadNonSeq的算法现在用于load,并且以前用于load的算法不再使用。

    1. I have big pdf and i need to parse it and get text contents. I use PDDocument.load() and then PDFTextStripper to extract data page by page (pdfstripper have got setStartPage(n) and setEndPage(n) where n=n+1 every page loop ). Is more efficient for memory using loadNonSeq instead load?

    使用 loadNonSeq 而不是 load 可能会改善多修订版 PDF 的内存使用情况,因为它在 load 时仅读取仍从引用表中引用的对象> 可以保留更多内存。

    不过,我不知道使用临时文件是否会产生很大的差异。

    is it a good practice to read PDF page per page without vaste in memory?

    PDFBox 内部也会逐页解析给定范围。因此,如果您逐页处理剥离器输出,那么逐页解析它当然是可以的。

    关于java - 如何使用 PDDocument.loadNonSeq,大型 pdf 剥离器/解析文本技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33033789/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com