按顺序阅读多个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);
}
}
}
你知道怎么解决吗?
提前谢谢你:)
正在对字符串进行默认排序,因此 10 将排在 1 之后,然后是 2,依此类推。
实施自定义排序 (Comparator) and use on the list of file names collection (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++));
(为清楚起见,我建议将“++”放在外面,但这是另一回事)
我将 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);
}
}
}
你知道怎么解决吗? 提前谢谢你:)
正在对字符串进行默认排序,因此 10 将排在 1 之后,然后是 2,依此类推。
实施自定义排序 (Comparator) and use on the list of file names collection (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++));
(为清楚起见,我建议将“++”放在外面,但这是另一回事)