Чтение акрополей с переменным размером страницы в документе с помощью iText - PullRequest
0 голосов
/ 05 февраля 2019

Я использую iText для добавления и чтения акрополей.Но возникает проблема, когда размер страницы в документе является переменным.Так, например.PDF документ с 3 страницами -> письмо, юридическое, письмо. Невозможно получить все поля.Но если все страницы легальные или все страницы буквы, работают отлично. Вот код, который я использую для чтения акрополей.

            String pdf  = "D:\\1350211.pdf";
    PdfReader reader = new PdfReader( pdf );
    AcroFields fields = reader.getAcroFields();
    Set<String> fldNames = fields.getFields().keySet();
    List<AcrofieldModel> lists = new ArrayList<>();

    for (String fldName : fldNames) {

        List<FieldPosition> position = fields.getFieldPositions(fldName);
        float lowerLeftX = position.get(0).position.getLeft(); 
        float lowerLeftY = position.get(0).position.getBottom();
        float upperRightX = position.get(0).position.getRight();
        float upperRightY = position.get(0).position.getTop();
        float fieldLength = Math.abs(upperRightX-lowerLeftX);

      AcrofieldModel acrofieldModel = new AcrofieldModel(fldName, fields.getField( fldName ), "(X:"+lowerLeftX + " , Y:"+lowerLeftY +") ", fieldLength);
      lists.add(acrofieldModel);
    }


    return lists;
...