[英]How can i extract a TextField from a pdf using iText?
我需要使用iText从PDF提取TextField。
PdfReader reader = new PdfReader(pdf.getAbsolutePath());
AcroFields form = reader.getAcroFields();
Map<String, Item> fields = form.getFields();
for(Entry<String, Item> entry : fields.entrySet()){
String field_name = entry.getKey();
int field_type = form.getFieldType(field_name);
List<FieldPosition> fieldPosition = form.getFieldPositions(field_name);
Rectangle position = fieldPosition.get(0).position;
float left = position.getLeft();
float top = position.getTop();
float width = position.getWidth();
float height = position.getHeight();
int load_page = fieldPosition.get(0).page;
/**
In this point I need to extract maxlength and options of filed.
This information are stored in a TextField object and i can read with the methods TextField.getMaxCharacterLength() and TextField.getOptions().
**/
}
reader.close();
文本字段对象包含我需要的信息,即maxlength和方法TextField.getMaxCharacterLength()和TextField.getOptions()的选项。
还有提取这些信息的解决方案吗?
使用PdfDictionary解决
Item field = entry.getValue();
PdfDictionary dict = field.getMerged(0);
int maxLength = dict.getAsNumber(PdfName.MAXLEN).intValue();
int ff = dict.getAsNumber(PdfName.FF).intValue();
ff var包含一个数字,指示字段的类型
有代码检查字段是否为梳状
if((ff & BaseField.COMB) > 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.