2015-02-28 2 views

ответ

0

В то время как вы можете указать дополнительные ключи в словаре, который, как правило, игнорировались, там нет ключа «Автор» в аннотацию или Аннотации FreeText в спецификации.

Таким образом, вы не можете получить автора аннотации FreeText, потому что его обычно не составляют часть аннотации.

2

Обратитесь к таблице ISO-32000-1 170 «Дополнительные записи, относящиеся к аннотации разметки». Он определяет ключ с именем /T, который описывается как необязательная текстовая строка , что будет отображаться в строке заголовка всплывающего окна аннотации при открытии и действии. В этой записи должен быть указан пользователь, добавивший аннотацию.

KenS является правильным в том смысле, что запрашиваемая вами ценность недоступна для каждого типа аннотаций, но если автор присутствует, вы найдете его в записи /T.

Так что, когда у вас есть это в Adobe Acrobat:

enter image description here

Вы найдете это внутри PDF:

enter image description here

у вас уже есть запись /Contents и /Type, теперь вы также должны искать запись /T. Если он отсутствует, автор аннотации не может быть восстановлен.

Вот некоторые примеры того, как получить конкретные ключи от аннотаций:

Я добавляю эти ссылки только для полноты, я думаю, вы уже знаете концепцию:

PdfDictionary annotDict = annots.getAsDict(i); 
PdfName author = annotDict.getAsString(PdfName.T); 

Если author является null, автор не может быть восстановлена.

+0

спасибо .. как всегда ваше детальное знание показывает, что это стоит. Я прочитал таблицы из 171, так что пропустил то, что теперь ясно, как ослепительно очевидное. –

0

Пожалуйста, используйте клавишу T, как так

PdfString Author = annot.GetAsString(PdfName.T); 
+0

Это ответ Бруно, сгоревший на его основной совет. – mkl

Смежные вопросы