我正在寻找一种方法来检查我的新PDF中每一页上的特定String
。这个想法是在每一页上,如果页面中缺少项目名称,就添加它(在保存pdf-doc.save(new FileOutputStream(new File(pathToFile)));
之前
我已经试过了:
document.save(new FileOutputStream(new File(pathToFile)));
PDDocument document = PDDocument.load(new File(pathToFile));
for (int i = 1; i < document.getNumberOfPages(); i++) {
PDFTextStripper reader = new PDFTextStripper();
reader.setStartPage(i);
reader.setEndPage(i);
String pageText = reader.getText(document);
System.out.println(pageText);
}
结果是:Hello World
,这是可以的。
但只有当文档已经保存并再次加载时,这才有效。
在我的情况下,当文档尚未保存时:
for (int i = 1; i < document.getNumberOfPages(); i++) {
PDFTextStripper reader = new PDFTextStripper();
reader.setStartPage(i);
reader.setEndPage(i);
String pageText = reader.getText(document);
System.out.println(pageText);
}
结果是empty String
很明显,在保存文档之前无法找到文本,所以我开始了一种新的方法。
oldPagesCount = document.getNumberOfPages();
addTableInformation(List<String> informationToAdd);
if (oldPagesCount < document.getNumberOfPages()) {
// we have auto generated pages and we should add projec name-number
for (int i = oldPagesCount; i < document.getNumberOfPages(); i++) {
page = document.getPage(i);
}
addProjectInfo(project);
}
}
在这种情况下,如果表信息被移动到多个页面,代码将在每个新添加的页面上进行,并添加项目信息。希望这能帮助到每一个需要这样做的人。