У меня есть документ PDF, который я создал не Acrobat (печать в PDF, затем объединение нескольких PDF-файлов), но я бы хотел вручную изменить номера страниц (т.е. первые несколько страниц - это просто титульные страницы, страница, на которой как меченый «страница 1» на самом деле седьмой лист PDF). Какой самый простой (и в идеале, бесплатный) способ сделать это?
Чтобы быть ясным, я не пытаюсь изменить номера на самих страницах, но номера страниц в «метаданных», которые хранит PDF (сами страницы уже нумеруются правильно; я просто хочу, чтобы «перейти на страницу 1», чтобы перейти на страницу с меткой 1, которая может быть листом 7).
Что бы это ни стоило, я на Windows, хотя у меня есть доступ и к Mac.
Ответы:
То, что вы хотите, на самом деле называется ярлыками страниц и может быть легко добавлено непосредственно в исходный код PDF. Переименуйте расширение файла из
pdf
вtxt
и откройте файл в текстовом редакторе (это может быть медленно, в зависимости от размера файла, будьте терпеливы). Информация о метках страницы хранится в узле, называемом каталогом документов, который выглядит примерно так:Это может содержать более запутанные вещи, но это основная структура. Существует только один каталог, поэтому в большом файле вы можете найти узел, который в нем содержится
/Catalog
. Теперь вы можете внести желаемые изменения, вставив/PageLabels
запись:Есть 3 строки, начинающиеся с цифр, называемые индексами страниц . Страница 1 имеет индекс
0
, страница 2 - индекс1
и так далее. Они всегда описывают диапазоны, поэтому строка с1 <<...>>
относится ко всем страницам с индекса 1 до 5, а строка с6 <<...>>
относится ко всем страницам с 6 до последней страницы. Метка для0 <<...>>
всегда должна быть определена.Вы можете найти больше информации о ярлыках страниц и исходном коде PDF в стандарте PDF или в вики о стандартах PDF.
источник
/St 8
или/St 2
вы устанавливаете начальную точку для отображаемой метки; но выберите любое число вместо 8 (или 2), которое должно быть> = 1. Например,1 << /S /r /St 12 >>
нумерация страниц с (на самом деле) 2-6 будет (отображаться) xii-xvii - потому что «12» соответствует «xii».Если я вас правильно понимаю, вот как это должно работать:
Тем не менее, я , кажется , помнить, что это не надежно и полностью работать в последний раз , когда я попробовал это (около 2 -х лет назад).
ОБНОВЛЕНИЕ: моя память не подводила меня. Теперь я попробовал еще раз и подал отчет об ошибке для Ghostscript ( ошибка 691889 ) по этому поводу. Перейдите по ссылке на отчет об ошибке, чтобы увидеть подробности.
источник
КАК редактировать номера страниц PDF с помощью Qpdf
Резюме:
qpdf -qdf foo.pdf foo.qdf
редактировать foo.qdf
fix-qdf foo.qdf >bar.qdf
qpdf bar.qdf bar.pdf
Подробные шаги
Шаг 1.
Преобразуйте документ в легко редактируемый формат QDF. Запустите qpdf из командной строки следующим образом:
Шаг 2.
Отредактируйте документ QDF с помощью текстового редактора, такого как notepad ++, emacs или gedit. Найдите слово
/Catalog
и отметьте << угловые скобки >> внутри. Рядом вы найдете текущий/PageLabels
( если есть ).Мы будем добавлять каждый раздел, который должен быть по-разному пронумерован
/PageLabels
. Формат:start-page
<<style
>>. Обратите внимание, что пробел не имеет значения и что первая страница документа0
. Если не указано иное, новый раздел всегда начинается с нумерации страниц с 1.Примеры
Вот полный пример того, как может выглядеть PageLabels с добавленными комментариями:
Если в файле нет PageLabels, добавьте их после
/Type /Catalog
. Например, можно изменить,в,
ДОПОЛНИТЕЛЬНО: НАЧИНАЯ С РАЗЛИЧНОГО ЧИСЛА С
/St
Каждый раздел перезапускает нумерацию с 1, если вы не укажете иное, используя
/St
. Обратите внимание, что в приведенном выше примере четвертая страница начинается с 15.ДОПОЛНИТЕЛЬНО: ИСПОЛЬЗОВАНИЕ РАЗНОГО СТИЛЯ С
/S
/S
Оператор принимает аргумент , который позволяет выбрать стиль нумерации,Если пропустить
/S
оператор, то этот раздел страниц не будет иметь нумерации. Например:ДОПОЛНИТЕЛЬНО: добавление префикса к каждой странице с
/P
Вы можете показать любую строку текста перед номером страницы, указав слово в скобках после
/P
:Указание префикса без стиля (
/S
) даст вам страницы, на которых есть только слово без номера. Это может быть полезно, например, если вы хотите, чтобы на титульной странице был просто ярлык «Cover».Шаг 3.
Запустите,
fix-qdf
чтобы сделать ваши правки действительными в формате PDF и поместите вывод в bar.qdf.Шаг 4
Откройте bar.qdf в вашей программе просмотра PDF и убедитесь, что он нумеруется правильно.
Шаг 5
Преобразуйте файл QDF обратно в обычный PDF, например, так:
Та да. Вы сделали Теперь у вас есть документ с правильно помеченными номерами страниц в bar.pdf.
источник
Есть небольшой скрипт на python, который может сделать эту работу: https://github.com/lovasoa/pagelabels-py
В вашем случае назовите что-то вроде:
источник
jPdf Tweak - это графическая утилита с открытым исходным кодом, которая позволяет редактировать ярлыки страниц в файлах PDF. Страница документации содержит пошаговые инструкции.
источник
Для удаления старых, возможно, самый простой кроссплатформенный способ - просто обрезать старые. Вы могли бы к этому, например, с BRISS.
Добавление новых с использованием бесплатных инструментов более сложно. Лично я, вероятно, сделал бы это с pdflatex, как в этом ответе StackExchange , хотя это могло бы быть довольно сложным решением, если у вас нет другого использования pdflatex.
Я думаю, что это можно сделать, но с помощью jPdfTweak .
источник
Метод, данный Дейном Х., работает с Acrobat Reader (или, если быть точным, с текущей версией Adobe Reader). Один небольшой момент, на который следует обратить внимание: поле вверху будет принимать только 8 символов, поэтому вы не можете ввести в него что-то вроде «предметного указателя», если такая метка была использована. Но вместо этого вы можете использовать пункт меню Вид> Навигация по страницам> Перейти к ... или эквивалент ключа.
Другой совет: спецификация pdf всегда присваивает номера страниц последовательно, поэтому в случае документа, созданного путем сканирования пар страниц, два набора номеров выходят из строя (если только вы не кропотливо нумеруете каждую страницу по отдельности). Но вы можете без особых усилий настроить свой документ, так что применяется соглашение «перейти на страницу n», где вы переходите на страницы 2n и 2n + 1 ».
источник
Ответ датчан самый лучший, форматы немного изменились, это может быть полезно:
источник
Я обнаружил, что прямое редактирование файла (как несжатого pdftk) не работает, если в области «/ outlines» уже установлено «/ title». Техника прямого редактирования, описанная в посте выше, демонстрируется на Youtube: https://www.youtube.com/watch?v=zoH1Z_hSpak
Но функция «обновления» pdftk может быть более интуитивной (и более надежной, когда «/ title» уже существует в области «/ outlines» PDF-файла) путем редактирования используемого здесь файла «doc_data.txt»: https: / /www.pdflabs.com/blog/export-and-import-pdf-bookmarks/
источник
BeCyPDFMetaEdit http://www.becyhome.de/becypdfmetaedit/description_eng.htm
Вы можете добавить / удалить / изменить схему номеров внутренних страниц на вкладке "страницы" этого бесплатного инструмента.
И будьте осторожны, программа просмотра PDF xchange не показывает схему нумерации страниц, и foxitreader дает правильный результат. Я не проверял читателя Acrobat.
источник