PdfReader reader = new PdfReader(bytes);
AcroFields fields = reader.getAcroFields()
boolean hasFormFields =
(fields != null && fields.getFields() != null && fields.getFields().size() > 0);
if (hasFormFields) {
// Report Error to User - throw exception, etc.
}
当PDF包含表单字段元素时,我希望getFields().size()大于0。是否有其他使用Java和iText标识表单字段的方法?
您使用了正确的方法来识别(有效的)PDF文件是否包含表单字段。您描述的问题是如何处理不符合标准的PDF文件,这些文件也包含表单字段,但确实存在一些问题,例如缺少AcroField字典、缺少字段数组或其他问题。您有三种可能:
fields
数组的文档。下面的代码检查方法返回true但仍包含表单字段的文档。这些字段也将显示在*Dobe Reader中。
public boolean containsFormFields2() {
AcroFields acroFields = reader.getAcroFields();
if (acroFields.getFields() == null || acroFields.getFields().size() == 0) {
// recheck "manually"
for (int i = 1; i <= super.reader.getNumberOfPages(); i++) {
PdfDictionary page = super.reader.getPageN(i);
PdfArray annots = page.getAsArray(PdfName.ANNOTS);
if (annots != null) {
// check for form fields in general
for (int j = 0; j < annots.size(); j++) {
PdfDictionary po2 = (PdfDictionary) annots.getDirectObject(j);
// FT key only exists for form fields
PdfName type = (PdfName) po2.get(PdfName.FT);
if (type != null) {
return true;
}
}
}
}
return false;
}
else{
return true;
}
}
我有一个项目,关于从URL获取XML文件,将其删除,提取数据,然后进行处理。此外,我正在使用用户输入创建URL。但是我需要检查URL是否包含要刮取的XML文件。有什么办法吗?那么基本上如何检查URL是否包含XML文件呢?
问题内容: 如何检查字符串中是否包含字符列表,例如“ ABCDEFGH”,如何检查字符串中是否有字符列表。 问题答案: 在Java中使用正则表达式检查在Java中使用 正则表达式 例如:
问题内容: 我正在尝试查看文件是否包含发送到页面的字符串。我不确定这段代码有什么问题: 问题答案: 简单得多: 回应有关内存使用的评论:
问题内容: 我在Java中使用PdfBox从PDF文件提取文本。提供的某些输入文件无效,这些文件上的PDFTextStripper暂停。有没有一种干净的方法来检查提供的文件是否确实是有效的PDF? 问题答案: 您可以找出文件(或字节数组)的mime类型,因此不必盲目地依赖扩展名。我是用光圈的MimeExtractor(http://aperture.sourceforge.net/)来完成的,或者
问题内容: 这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 考虑: 假设我有上面的代码,编写该语句的正确方法是什么? 问题答案: 您可以使用该函数来查找另一个字符串中另一个字符串的出现: 注意,of的使用是故意的(既不会也不返回期望的结果);返回大海捞针字符串中针线串起始处的偏移量,或者返回boolean值(如果找不到针)。由于0是有效的偏移量,而0是“假”,
我想知道,我“正在寻找在我的片段中添加更新按钮,当用户单击时会检查更新是否可用。 我“正在寻找如何从url访问json文件并检查json值是否包含新值的解决方案。如果键与已经指定的值匹配,则显示消息您的数据已更新,如果不匹配,则显示无可用更新。 例如,如果下面是json文件 如果它包含除1之外的其他内容,则显示带有可用更新的toast消息。