繁体   English   中英

如何使用iText从pdf提取TextField?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM