Захват аннотаций с помощью PDFTextStripperJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Захват аннотаций с помощью PDFTextStripper

Сообщение Anonymous »

Я использую PDFTextStripper (3.0.3) для извлечения текста из PDF-файла для анализа документов для специального процесса. Чтобы правильно понять документ, мне нужно, чтобы текст был в порядке. Подумайте, что таблицы и столбцы, например, заголовки, должны идти перед данными таблицы.

Код: Выделить всё

        try (PDDocument document = Loader.loadPDF(file)) {
final PDFTextStripper pdfStripper = new PDFTextStripper();
pdfStripper.setSortByPosition(true);

text = pdfStripper.getText(document);
}
Я недавно столкнулся с документом, в котором большая часть текста, который я хотел захватить, не была предоставлена ​​PdftextStripper . Когда я открываю PDF в Adobe, текст отображается и может быть скопирован в виде текста. После долгих отладки я узнал, что текст хранится на самом деле в аннотациях страниц. Я не нашел ничего, что говорит о том, как заставить утилиту, включать аннотации. Я не смог создать версию, чтобы поделиться с публикой. Я в основном учусь читать PDF-файлы и не знаю, как создать его с нуля или дезинфицировать существующий.

Код: Выделить всё

        for (final PDAnnotation annotation : page.getAnnotations()) {
// custom print process which recursively dumps the fields and displays classes and values
}
< /code>
Тримирован только к специфике аннотации: < /p>
Annotation (class PDAnnotationWidget)
Name: null
COSObject:
AP:
...
Rect:
Item #0 (COSFloat)
Value: 13.3036
Item #1 (COSFloat)
Value: 717.61
Item #2 (COSFloat)
Value: 285.541
Item #3 (COSFloat)
Value: 729.163
StructParent:
Value: 0
Subtype:
Name: Widget
T:
Text: name_01_1
TU:
Text: Name (Last, First, Middle)
Type:
Name: Annot
V:
Text: {My Name in Last, First, Middle}

Appearance:
Operator
Name: SAVE

Operator
Name: RESTORE

Operator
Name: BEGIN_MARKED_CONTENT

Argument #1 (COSName)
Name: Tx

Operator
Name: SAVE

Operator
Name: ENDPATH

Operator
Name: SAVE

Operator
Name: BEGIN_TEXT

Operator
Name: SET_FONT_AND_SIZE

Argument #1 (COSName)
Name: F1

Argument #2 (COSInteger)
Value: 8

Operator
Name: MOVE_TEXT

Argument #1 (COSInteger)
Value: 2

Argument #2 (COSFloat)
Value: 3.54

Operator
Name: SHOW_TEXT

Argument #1 (COSString)
Text: {My Name in Last, First, Middle}

Operator
Name: END_TEXT

Operator
Name: RESTORE

Operator
Name: RESTORE

Operator
Name: END_MARKED_CONTENT
В любом случае, есть PdftextStripper включить аннотации? Мне нужно, чтобы текст появился в порядке с другими текстами (по положению) и не могу просто извлечь их отдельно.


Подробнее здесь: https://stackoverflow.com/questions/793 ... xtstripper
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»