繁体   English   中英

按顺序阅读多个PDF文件

[英]Reading multiple PDF files in order

我将 PDF 文件拆分为多个 pdf 文件,然后尝试从文件夹中读取多个 pdf 文件并打印出文件名。

int l=1;
File file = new File(userInputFile);
try (PDDocument document = PDDocument.load(file)) {

    Splitter splitter = new Splitter();
    List<PDDocument> Pages = splitter.split(document);
    Iterator<PDDocument> iterator = Pages.listIterator();

    while (iterator.hasNext()) {
        PDDocument pd = iterator.next();    
        pd.save("C:\\Users\\Public\\Documents\\FolderForCheckListTest_000\\"+"Page "+l++);
    }

    document.close();
}

文件夹中的文件:第1页、第2页、第3页、第4页、第5页、第6页、第7页、第8页、第9页和第10页。

当我阅读这些文件并打印它们时,我得到了错误的顺序:第 1 页、第 10 页、第 2 页等等。

这是我读取文件的代码:

 for (File ListOfFile : ListOfFiles) {
    if (ListOfFile.isFile()) {
        files  = ListOfFile.getName();
        if (files.startsWith("Page")){
            000\\multiplePDFtest\\";
            String nfiles = path;
            PDFManager pdfManager = new PDFManager();
            String pdfToText = pdfManager.pdftoText(nfiles+files);
            listStrings.add(pdfToText);
        }
    }
}

你知道如何解决吗? 先感谢您 :)

默认排序是在 String 上完成的,因此 10 将在 1 之后,然后是 2 等。

实现自定义排序( Comparator )并在文件名列表( Collections.sort )上使用并适当处理排序,即将结束数字视为数字。

要创建固定的文件名长度,请更改此

pd.save("C:\\Users\\Public\\Documents\\FolderForCheckListTest_000\\"+"Page "+l++);

对此

pd.save("C:\\Users\\Public\\Documents\\FolderForCheckListTest_000\\"+"Page "+String.format("%02d",l++));

(为清楚起见,我建议将“++”放在外面,但那是另一回事了)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM