ПРИМЕЧАНИЕ . Принятый ответ по-прежнему в основном правильный, но с некоторыми пробелами.Не хватает того, что многие PDF-файлы не могут редактироваться напрямую как текст. Даже в таком случае такое редактирование может иногда повредить PDF, делая его нечитаемым. Одним из решений, которое будет работать как для Unix, так и для Microsoft Windows, является qpdf, который может переводить PDF-файлы в "QDF", текстовую форму, которая по-прежнему является действительным PDF-файлом. Пакет qpdf
поставляется с fix-qdf
который пересчитывает смещения после того, как файл QDF был отредактирован для исправления любого повреждения.
КАК Редактировать номера страниц PDF с помощью Qpdf
Резюме:
qpdf -qdf foo.pdf foo.qdf
редактировать foo.qdf
0 << >> % No label on first pages
6 << /S /D >> % Start numbering from 7th page.
fix-qdf foo.qdf >bar.qdf
- тест бар.qdf
qpdf bar.qdf bar.pdf
Шаг 1.
Преобразуйте документ в легко редактируемый формат QDF. Запустите qpdf из командной строки следующим образом:
qpdf -qdf foo.pdf foo.qdf
Примечание. Если qpdf еще не установлен, исполняемые файлы Microsoft Windows можно загрузить с https://github.com/qpdf/qpdf/releases систем Unix, таких как Ubuntu и Debian GNU/Linux, которые можно установить, введя команду apt install qpdf
,
Шаг 2.
Отредактируйте документ QDF с помощью текстового редактора, такого как notepad++, emacs или gedit. Найдите слово /Catalog
и отметьте << угловые скобки >> внутри. Рядом вы найдете текущий /PageLabels
(если таковые имеются).
Мы будем добавлять каждый раздел с нумерацией в /PageLabels
. Формат - start-page
<< style
>>. Обратите внимание, что пробел не имеет значения и что первая страница документа равна 0
. Если не указано иное, новый раздел всегда начинается с нумерации страниц с 1.
Вот полный пример того, как может выглядеть PageLabels с добавленными комментариями:
/Type /Catalog
/PageLabels <<
/Nums [
0 % From the first page of the document,
<<
/S /r % ...use the lowercase roman numeral style.
>>
6 % From seventh page onward,
<<
/S /D % ...use ordinary digits (arabic numerals)
>>
]
>>
Если в файле нет PageLabels, добавьте их после /Type /Catalog
. Например, можно изменить,
1 0 obj
<<
…
/Type /Catalog
>>
endobj
в,
1 0 obj
<<
…
/Type /Catalog
/PageLabels
<< /Nums [
0 << >> % No label for cover
1 << /S /r >> % i, ii for index
3 << /S /D /St 15 >> % 15, 16, 17, ... for article
31 << /S /D /P (A-) >> % A-1, A-2, A-3... for appendix
]
>>
>>
endobj
НАЧИНАЯ С РАЗЛИЧНОГО НОМЕРА С /St
С
Каждый раздел перезапускает нумерацию с 1, если вы не укажете это с помощью /St
Обратите внимание, что в приведенном выше примере четвертая страница начинается с 15.
ИСПОЛЬЗОВАНИЕ РАЗНОГО СТИЛЯ С /S
Оператор /S
принимает аргумент, который позволяет вам выбрать стиль нумерации,
- /D цифры (1, 2, 3 ...)
- /R заглавные римские (I, II, III ...)
- / г строчные римские (I, II, III ...)
- / Прописные буквы (A, B, C, ...., X, Y, Z, AA, AB, AC, ...)
- / строчные буквы алфавита (a, b, c, ...., x, y, z, aa, ab, ac, ...)
Если опустить оператор /S
, то этот раздел страниц не будет иметь нумерации. Например:
0 << >> % No label for cover
ДОБАВЛЕНИЕ ПРЕФИКСА В КАЖДУЮ СТРАНИЦУ С /P
Вы можете показать любую строку текста перед номером страницы, указав слово в скобках после /P
:
31
<<
/S /D
/P (A-) % label appendix pages A-1, A-2, A-3
>>
Указание префикса без стиля (/S
) даст вам страницы, на которых есть только слово без номера. Это может быть полезно, например, если вы хотите, чтобы на титульном листе был просто ярлык "Cover".
0 << /P (Cover) >> % No number, just "Cover"
Шаг 3.
Запустите fix-qdf
чтобы сделать ваши правки верными в формате PDF, и выведите результат в bar.qdf.
fix-qdf foo.qdf > bar.qdf
Шаг 4
Откройте bar.qdf в вашей программе просмотра PDF и убедитесь, что он нумеруется правильно.
Шаг 5
Преобразуйте файл QDF обратно в обычный PDF, например, так:
qpdf bar.qdf bar.pdf
Та да. Вы сделали Теперь у вас есть документ с правильно помеченными номерами страниц в bar.pdf.