Мне нужно вставить гиперссылку в несколько тысяч существующих PDF-файлов.Я работаю с zend_pdf, который, по-видимому, не может установить невидимую границу.Единственный способ сделать границы ссылок невидимыми (нашел это где-то еще на этом сайте, здесь, если быть точным ), это найти каждый элемент ссылки в pdf и добавить аннотацию / Border., например так:
echo str_replace ('/ Annot / Subtype / Link', '/ Annot / Subtype / Link / Border [0 0 0]', $ pdf-> render ());
Поскольку мне нужно работать с файлами, которые находятся в моей файловой системе, я использую команду sed для операции поиска и замены.
Теперь, на первый взгляд, это работает, как документыправильно отображаются Acrobat 8, Viewer OSX 10.6 и Ubuntu для просмотра документов.Однако такие инструменты, как pdftk (1.41) и pdfinfo (0.12.1) сообщают, что структура повреждена.Это раздражает, так как это означает, что дальнейшие манипуляции с pdf с использованием pdftk будут невозможны, так как инструмент отказывается работать с файлом, поскольку в нем есть ошибки.Я просмотрел файлы с помощью бинарного редактора и обнаружил, что если я добавлю более двух байтов после "/ Link", файл будет поврежден.Это меня очень смущает, так как на основе спецификаций pdf (я использую 1.4) нет контрольной суммы, кроме потоков, что должно означать, что можно добавлять столько байтов, сколько он хочет, если он этого не делает внутрипоток и вставленные байты являются допустимым синтаксисом PDF.Что мне здесь не хватает?
Вот пример:
оригинал pdf
обработанный pdf