Есть ли способ поставить номер целевой страницы на правом поле напротив ссылки в PDF?

Вопрос или проблема

У меня есть PDF, который содержит страницы формата A4 с текстом. У некоторых слов в тексте есть ссылки, которые указывают на другие страницы внутри того же PDF. Есть ли способ сделать так, чтобы номер страницы, на которую указывает каждая ссылка, появлялся в правом боковом поле напротив ссылки, чтобы кто-то, кто использует бумажную копию PDF (кто, следовательно, не может кликнуть по ссылке), мог увидеть, на какую страницу указывает ссылка, чтобы они могли перевернуть на эту страницу?

Я рассматривал возможность использования Adobe Acrobat, PDF X-Change Editor, Nitro PDF и Foxit, но ни одна из этих программ не имеет функции, которая могла бы это сделать.

Способ, которым ссылки хранятся в PDF, означает, что в странице нет “якоря”. Самый простой способ это увидеть – посмотреть, как описываются страницы. Поэтому для упрощения я написал этот 3-страничный файл, где положение в верхнем правом углу, как в книжке-раскладушке, перейдёт на следующую страницу.

вставьте описание изображения здесь

Очевидно, что “ничего” не видно (это просто горячая точка), и все записи страниц не содержат ничего в своем коде. Вот они, где “содержимое” страниц 9, 10 и 11, но все говорят /Length 0 (ничего показывать), поэтому нам нужно прочитать и экспортировать связывающие объекты, прежде чем добавлять что-либо в файл.

%PDF-1.7
1 0 obj<</Names<</Dests 2 0 R>>/Pages 3 0 R/Type/Catalog>>endobj
3 0 obj<</Count 3/Kids[5 0 R 6 0 R 4 0 R]/Type/Pages>>endobj

5 0 obj<</Annots[7 0 R]/MediaBox[0 0 595 842]/Parent 3 0 R/Resources<<>>/Type/Page/Contents 9 0 R>>endobj
7 0 obj<</A<</D[6 0 R/XYZ null null null]/S/GoTo>>/Border[0 0 0]/C[0 0 0]/F 4/NM(1265dfdf-e57e-4f60-94f4dc2d4d08c9aa)/P 5 0 R/Rect[450 750 595 842]/Subtype/Link/Type/Annot>>endobj
9 0 obj<</Length 0>>
stream
endstream
endobj

6 0 obj<</Annots[8 0 R]/MediaBox[0 0 595 842]/Parent 3 0 R/Resources<<>>/Type/Page/Contents 10 0 R>>endobj
8 0 obj<</A<</D(Page3)/S/GoTo>>/Border[0 0 0]/C[0 0 0]/F 4/NM(7f204e9d-9862-4269-9776358454c37864)/P 6 0 R/Rect[450 750 595 842]/Subtype/Link/Type/Annot>>endobj
10 0 obj<</Length 0>>
stream
endstream
endobj
2 0 obj<</Names[(Page3)[4 0 R/XYZ 0 842 null]]>>endobj

4 0 obj<</MediaBox[0 0 595 842]/Parent 3 0 R/Resources<<>>/Type/Page/Contents 11 0 R>>endobj
11 0 obj<</Length 0>>
stream
endstream
endobj

xref
0 12
0000000000 65536 f 
0000000009 00000 n 
0000000782 00000 n 
0000000074 00000 n 
0000000838 00000 n 
0000000136 00000 n 
0000000468 00000 n 
0000000242 00000 n 
0000000575 00000 n 
0000000422 00000 n 
0000000736 00000 n 
0000000931 00000 n 

trailer
<</Size 12/Root 1 0 R/ID[<4657E6C7218E18DED2570E82964D21E2><9946E25234503908D6698FAD5FE9296F>]>>
startxref
0978
%%EOF

Вывод ссылок в виде таблицы будет выглядеть следующим образом:

Title,"Modification Date","Placement Page","Link Rectangle","Border Color","Border Style","Border Width","Highlight Type",Actions
<None>,,1,"450,750,595,842",#000000,Solid,0,Invert,"goto:{2, XYZ, 15}"
<None>,,2,"450,750,595,842",#000000,Solid,0,Invert,"goto:{3, XYZ, 12, 0.000, 842.000}"

Запись вывода может быть добавлена справа от верхних правых углов, просто увеличив ширину страниц с 595 до, скажем, 842 (такой же, как высота страницы), иначе числа будут бессмысленны, так как будут искажены за счёт инъекции дополнительных страниц.

Проблема заключается в том, что у страниц нет аннотаций в качестве текста, поэтому нам нужно будет добавить много дополнительных сложных ресурсов редактора, таких как шрифты и их размещение и сопоставление и т. д., что значительно расширит файл по сравнению с тем, что он есть.

Ответ или решение

К сожалению, в существующих инструментах редактирования PDF, таких как Adobe Acrobat, PDF X-Change Editor, Nitro PDF и Foxit, нет встроенной функции для автоматического добавления номера страницы в правом поле напротив ссылки. Однако, вы можете выполнить это вручную с использованием нескольких шагов. Давайте рассмотрим возможные методы решения вашей задачи.

### 1. Определение ссылок и страниц

Первым шагом вам необходимо определить все внутренние ссылки и соответствующие им номера страниц. Для этого вы можете использовать инструменты для анализа PDF, чтобы извлечь метаданные ссылок из вашего документа. Например, существуют инструменты, которые позволяют извлечь аннотации и ссылки, а также их целевые страницы. Это позволит вам составить список всех ссылок и номера страниц, на которые они указывают.

### 2. Добавление текстовых полей для номеров страниц

После того как вы собрали данные о ссылках и соответствующих номерах страниц, следующим шагом будет ручное добавление текстовых полей с номерами страниц в правом поле вашего PDF. Вы можете сделать это в Adobe Acrobat следующим образом:

– Откройте ваш PDF-файл в Adobe Acrobat.
– Перейдите в режим редактирования (Tools → Edit PDF).
– Выберите инструмент “Добавить текст” (Add Text).
– Разместите текстовое поле в правом верхнем углу страницы напротив ссылки и введите соответствующий номер страницы. Учтите, что вам, возможно, потребуется немного отрегулировать расположение текста, чтобы он выглядел аккуратно и не мешал основному содержанию.

### 3. Повторение процесса для всех страниц

Эти действия необходимо будет повторить для каждой страницы, содержащей ссылки. Такой процесс может быть трудоемким, но он обеспечит точность и четкость информации, предоставляемой читателям.

### 4. Сохранение и тестирование документа

После того как вы добавите номера страниц, обязательно сохраните изменения в PDF и протестируйте документ на предмет корректности расстановки ссылок и увиденных номеров страниц. Убедитесь, что номера отображаются правильно и не перегружают внешний вид документа.

### 5. Автоматизация процесса (при наличии программирования)

Если у вас есть навыки программирования, вы можете попробовать автоматизировать процесс с помощью скриптов на Python или JavaScript. Библиотеки, такие как PyPDF2 для Python или PDF.js для JavaScript, могут помочь в извлечении информации из существующего PDF и впоследствии в создании нового PDF с нужными текстовыми вставками.

### Заключение

Хотя для достижения вашей цели вам потребуется ручной подход или разработка скриптов, важно помнить, что предоставление четкой информации о номерах страниц в вашем документе значительно повысит его удобство для пользователей, читающих его в бумажном виде. Тем не менее, существующие инструменты редактирования PDF не предлагают автоматического процесса для этой задачи, поэтому вам следует учитывать это при планировании вашего рабочего процесса.

Оцените материал
Добавить комментарий

Капча загружается...