Как добавить тег аннотации в PDF с тегами с помощью PDFBoxJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить тег аннотации в PDF с тегами с помощью PDFBox

Сообщение Anonymous »

У меня есть PDF-файл с тегами (соответствует PDF-UA) с простой структурой:
Изображение
< /p>
Мне нужно добавить аннотацию:

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

    





Sample comment







во вложенном теге Annot в теге P. Вот так (я сделал вручную в Adobe Acrobat):
Изображение
Я могу импортировать XML-файл XFDF в PDF-файл:

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

    PDDocument document = PDDocument.load(new File("tagged.pdf"));

FDFDocument fdfDoc = FDFDocument.loadXFDF(new File("annotation.xfdf"));
List fdfAnnots = fdfDoc.getCatalog().getFDF().getAnnotations();

List pageAnnotations = new ArrayList();
for (int i=0; i < fdfAnnots.size(); i++) {
FDFAnnotation fdfannot = fdfAnnots.get(i);
PDAnnotation pdfannot = PDAnnotation.createAnnotation(fdfannot.getCOSObject());
pdfannot.constructAppearances();
pageAnnotations.add(pdfannot);
}
document.getPage(0).setAnnotations(pageAnnotations);

document.save(new File("tagged_with_annotation.pdf"));
но проверка veraPDF выводит:

Аннотация, за исключением аннотаций подтипа Widget, PrinterMark или Link, должна быть вложенные в тег Annot

и выходные данные средства проверки читаемости PDF (инструмент PAC):

Аннотация не вложена в элемент структуры «Annot»

как ожидалось, потому что я не установил тег «annot» (и конкретное место ) для импортированной аннотации.
Кроме того, я могу получить объект тега P:

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

    PDDocumentCatalog pdDocumentCatalog = document.getDocumentCatalog();
PDStructureTreeRoot pdStructureTreeRoot = pdDocumentCatalog.getStructureTreeRoot();
COSArray aDocument = (COSArray)(pdStructureTreeRoot.getK().getCOSObject());
COSObject oDocument = (COSObject) aDocument.get(0);
COSArray aPart = (COSArray)oDocument.getItem(COSName.K).getCOSObject();
COSObject oPart = (COSObject) aPart.get(0);
COSArray aSect = (COSArray)oPart.getItem(COSName.K).getCOSObject();
COSObject oSect = (COSObject) aSect.get(0);
COSArray aP = (COSArray)oSect.getItem(COSName.K).getCOSObject();
COSObject oP= (COSObject) aP.get(0);
Но я не понимаю, как редактировать существующее дерево тегов в PDF.
Вопрос: как добавить тег и аннотацию в файл PDF. существующее дерево тегов в PDF с помощью PDFBox?
ОБНОВЛЕНИЕ: пример PDF и XFDF здесь.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-pdfbox
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как добавить тег аннотации в PDF с тегами с помощью PDFBox
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как добавить тег аннотации в PDF с тегами с помощью PDFBox
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как добавить тег аннотации в PDF с тегами с помощью PDFBox
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как добавить тег аннотации в PDF с тегами с помощью PDFBox
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как добавить тег аннотации в PDF с тегами с помощью PDFBox
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

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