Я пытаюсь написать код, который добавляет гиперссылки к существующему документу PDF.Я пытался сделать это, следуя спецификации PDF 32000, но, похоже, что-то упустил.
Просмотрщик PDF показывает мои аннотации ссылок и меняет указатель мыши на «палец» при наведении на них, но URL не отображаются, и нажатие на них ничего не делает .
Содержимое PDF показано ниже.
Страница:
/Type/Page
/Parent 1 0 R
/MediaBox[0 0 594.75 841.5]
/Contents 7 0 R
/Resources 8 0 R
/Annots [5 0 R 6 0 R] % added by me
Первая аннотация(для "Google", # 5):
/Type /Annot
/Subtype /Link
/Rect [60.0 779.25 150.0 767.25]
/BS
<<
/W 2 % should be 0, set to 2 to be able to see the annotation's position
>>
/F 4
/A
<<
/Type /Action
/Subtype /URI
/URI (https://google.com)
>>
Вторая аннотация (для "DuckDuckGo", # 6):
/Type /Annot
/Subtype /Link
/Rect [342.0 694.5 432.0 682.5]
/BS
<<
/W 2 % should be 0, set to 2 to be able to see the annotation's position
>>
/F 4
/A
<<
/Type /Action
/Subtype /URI
/URI (https://duckduckgo.com)
>>
Поток контента:
1 0 0 -1 36.0 841.5 cm
-100 Tz
q
/Font3 -9.0 Tf
0.0 0.0 0.0 rg
24.0 62.25 90.0 12.0 re W n
BT
1 0 0 1 0 0 Tm
24.75 69.75 Td
(Google) Tj
ET
Q
q
/Font3 -9.0 Tf
0.0 0.0 0.0 rg
306.0 147.0 90.0 12.0 re W n
BT
1 0 0 1 0 0 Tm
306.75 154.5 Td
(DuckDuckGo) Tj
ET
Q
Этот код дает следующий результат:
Сгенерированный файл PDF доступен здесь.
Iвзглянул на код, который Microsoft Word создает для ссылок, и он выглядит примерно так же (за исключением минимизации и структурного родительского элемента; этот код работает, а мой нет):
/Subtype/Link/Rect[ 69.75 697.51 113.16 720] /BS
<<
/W 0
>>
/F 4/A
<<
/Type/Action/S/URI/URI(https://google.com/)
>>
/StructParent 0
Любой советочень цениться.