Друзья, обработка представляет собой инструмент для редактирования PDF через замену/добавление текста в файловых потоках . В редакторе реализовано:
- Добавление гиперссылок
Начиная с релиза 8.3.21 доступно добавление отображаемых объектов в PDF, но все также нет возможности добавить гиперссылку, а при поиске решения в основном будут рекомендации или инструкции по использованию специализированных внешних библиотек. А есть ли какие-нибудь еще варианты?
Есть, открыть PDF в блокноте и добавить аннотацию с типом ссылки, согласно спецификации PDF 1.7 от Adobe.
6 0 obj (Начало объекта с номером 6)
<<
/F 4
/Rect [ 25 42.060608 450.500000 61.810608 ] (Координаты области)
/Type /Annot
/P 5 0 R (Ссылка на объект страницы)
/H /N
/Subtype /Link
/A 7 0 R (Ссылка на объект действия при активации)
/C [ 0 0 0 ]
>>
endobj
7 0 obj (Начало объекта с номером 7)
<<
/Type /Action
/S /URI
/URI (//infostart.ru/1c/tools/2216603/) (Ссылка для перехода)
>>
endobj
Далее в описании страницы необходимо добавить вывод объекта с гиперссылкой
5 0 obj
<<
/Parent 4 0 R
/Type /Page
/BleedBox [ 28.350000 28.350000 566.970000 813.570000 ]
/MediaBox [ 0.000000 0.000000 595.320000 841.920000 ]
/TrimBox [ 28.350000 28.350000 566.970000 813.570000 ]
/Contents 16 0 R
/Resources
<<
/ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
/Font
<<
/F1 10 0 R
>>
/XObject
<<
/Image1 8 0 R
>>
>>
/Annots [ 6 0 R ] (Ссылка на объект гиперссылки)
>>
endobj
Для самостоятельного изучения структуры PDF, рекомендую использовать онлайн редакторы с возможностью добавления ссылок. А для вывода гиперссылки через данную обработку необходимо выполнить:
ФайлИсточник = "D:\Users\ivshumelev\Downloads\1.pdf";
РедакторPDF = Обработки.сп_РедакторPDF.Инициализировать(ФайлИсточник);
ГиперссылкаОписание = РедакторPDF.ГиперссылкаОписаниеИнициализировать("//infostart.ru/1c/tools/2216603/");
ГиперссылкаОписание.Rect = "[25 42.0606079 450.5 61.8106079]";
РедакторPDF.ГиперссылкаСоздать(ГиперссылкаОписание);
ФайлПриемник = "D:\Users\ivshumelev\Downloads\2.pdf";
РедакторPDF.ФайлВыгрузить(ФайлПриемник);
Как видите, все просто, данная разработка в помощь!
Обработка является частью модуля Стандартные подсистемы.
Проект и исходный код доступен на GitLab.
-----
Требования:
- Обработка предназначена для версии платформы >= 8.3.21, тестировалась на 8.3.21.1895
-----
Ссылки:
- Проект в GitLab
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.10.344