В данный момент я создаю PDF-файл с использованием тега cfdocument. PDF-файл представляет собой не что иное, как набор ссылок на другие PDF-файлы.
Итак, я создаю этот индекс PDF, и все ссылки являются HREF.
<a href="Another_PDF.pdf">Another PDF</a>
если я установлю для атрибута localURL значение «нет», в моих URL-адресах будет весь веб-путь:
<a href="http://www.mywebsite.com/media/PDF/Another_PDF.pdf">Another PDF</a>
если я устанавливаю для атрибута localURL значение «да», я получаю:
<a href="File:/D:/website/media/PDF/Another_PDF.pdf">Another PDF</a>
Таким образом, этот индексный PDF-файл будет помещен на компакт-диск, а все связанные PDF-файлы будут находиться рядом с ним, поэтому мне нужна относительная ссылка... больше похоже на:
<a href="Another_PDF.pdf">Another PDF</a>
cfdocument, похоже, этого не делает. Я могу изменить имя файла документа и сделать его "File:///Another_PDF.pdf", но это не работает либо потому, что я не знаю букву диска компакт-диска ... или если файлы собираются оказаться внутри каталога на компакт-диске.
Есть ли способ (возможно, с помощью iText или чего-то еще) открыть PDF-файл после его создания и преобразовать URL-ссылки в фактические теги PDF GoTo?
Я знаю, что это своего рода натяжка, но я не в своем уме с этим.
Итак, мне удалось попасть в Объекты, но я все еще борюсь.
Преобразование из:
5 0 obj<</C[0 0 1]/Border[0 0 0]/A<</URI(File:///75110_002.PDF)/S/URI>>/Subtype/Link/Rect[145 502 184 513]>>endobj
К этому:
19 0 obj<</SGoToR/D[0/XYZ null null 0]/F(75110_002.PDF)>>endobj
20 0 obj<</Subtype/Link/Rect[145 502 184 513]/Border[0 0 0]/A 19 0 R>>endobj
Вау, это действительно надирает мне задницу! :)
Итак, мне удалось открыть документ, пройтись по аннотациям ссылок, зафиксировать координаты Rect и ссылку на имя документа (сохраненное в массив структур), а затем успешно удалить аннотацию, которая была ссылкой URI.
Итак, теперь я подумал, что теперь я могу перебрать этот массив структур и поместить аннотации обратно в документ, используя метод createLink или метод setAction. Но все примеры этих методов, которые я видел, привязаны к фрагменту (текста). Но в моем документе уже есть текст, поэтому мне не нужно переделывать текстовые ссылки, мне просто нужно вернуть ссылки на то же место.
Поэтому я решил, что могу снова открыть документ и найти фактический текст, который был ссылкой, а затем прикрепить setAction к уже существующему фрагменту текста... Я не могу найти текст!
я сосать! :)
theActionObject.put( pdfName.URI, "theNewValueHere");
- person Leigh   schedule 08.01.2014