【发布时间】:2020-06-25 20:40:09
【问题描述】:
我正在使用 PDFBox 读取 pdf 文档中的特定字段。实际上,我可以通过仅包含一页的 pdf 获得我想要的所有信息。 PDF 包含具有特定名称的字段,我可以获取所有字段并将其插入数据库。
我将此代码与 AccroForm 一起使用来访问字段
InputStream document = item.getInputStream();
pdf = PDDocument.load(new RandomAccessBufferedFileInputStream(document));
pdCatalog = pdf.getDocumentCatalog();
pdAcroForm = pdCatalog.getAcroForm();
String dateRapport = pdAcroForm.getField("import_Date01").getValueAsString();
String radioReason = pdAcroForm.getField("NoFlight").getValueAsString();
boolean hasdata = false;
if(radioRaison.length() > 0 && !radioRaison.equals("Off")) {
if(radioRaison.equals("NR")) {
rvhi.setRaison(obtenirRaison(raisons, "NR"));
}else if(radioRaison.equals("WX")) {
rvhi.setRaison(obtenirRaison(raisons, "ME"));
}else if(radioRaison.equals("US")) {
rvhi.setRaison(obtenirRaison(raisons, "BR"));
}
}
if(pdAcroForm.getField("import_Hmn0"+indexEnString).getValueAsString().length() > 0)
{
hasdata = true
}
pdf.close();
return hasdata;
现在,我的问题是对包含多个具有相同字段名称但字段数据不同的相同页面的 pdf 执行相同的操作。我想遍历每个页面并调用相同的方法并检索每个页面上的字段数据。
我使用下面的代码来遍历 pdf 的页面,但我不知道如何获取当前页面上的字段...我不知道如何从 PDPage 对象中获取 acroform 字段?
PDPageTree nbPages = pdf.getPages();
if(nbPages.getCount() > 1) {
for(PDPage page : nbPages) {
???? how to get fields Acroform from PDPage page ???
}
}
提前感谢您的回复!
【问题讨论】: