gpt4 book ai didi

java - 使用 Apache POI 和 Apache PDFBox 阅读 doc、pdf 文件时文本框位置错误

转载 作者:行者123 更新时间:2023-12-02 07:42:14 28 4
gpt4 key购买 nike

我正在尝试使用Java读取和处理.doc、.docx、.pdf文件,方法是使用Apache POI(对于doc、docx)和Apache PDFBox将它们转换为单个字符串 (对于 pdf)库。
它工作正常,直到遇到文本框。如果格式是这样的:

第1段
文本框1
第2段
文本框2
第3段

那么输出应该是:
第 1 段文本框 1 第 2 段文本框 2 第 3 段
但我得到的输出是:
第1段第2段第3段文本框1文本框2

它似乎是在末尾添加文本框,而不是在应该在的位置,即段落之间。 doc 和 pdf 文件都会出现此问题。这意味着 POI 和 PDFBox 这两个库都遇到了相同的问题。

读取pdf文件的代码是:

    void pdf(String file) throws IOException {        //Initialise file        File myFile = new File(file);        PDDocument pdDoc = null;        try {            //Load PDF            pdDoc = PDDocument.load(myFile);            //Create extractor            PDFTextStripper pdf = new PDFTextStripper();            //Extract text            output = pdf.getText(pdDoc);        }        finally {            if(pdDoc != null)                //Close document                pdDoc.close();        }    }

文档文件的代码是:

    void doc(String file) throws FileNotFoundException, IOException {        File myFile = null;        WordExtractor extractor = null ;        //initialise file        myFile = new File(file);        //create file input stream        FileInputStream fis=new FileInputStream(myFile.getAbsolutePath());        //open document        HWPFDocument document=new HWPFDocument(fis);        //create extractor        extractor = new WordExtractor(document);        //get text from document        output = extractor.getText();    }

最佳答案

对于 PDFBox 执行以下操作: pdf.setSortByPosition(true);

关于java - 使用 Apache POI 和 Apache PDFBox 阅读 doc、pdf 文件时文本框位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11429093/

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