Редактирование PDF-файлов в Linux
Этот учебник посвящён краткому описанию примеров редактирования PDF-файлов в операционной системе Linux. Одновременно с этим описанные программы будут работать в других операционных системах, в том числе в MS Windows. Соответственно, название учебника не совсем корректное. Правильнее его назвать - редактирование PDF-файлов из консоли.
Программное обеспечение
править- PDFShuffler (GUI для Python-pyPdf) — извлечение, добавление, удаление, поворот, изменение порядка, обрезка страниц PDF.
- Poppler-utils (pdfseparate, pdfunite, pdftocairo, pdftoppm, pdfimages и др.) — извлечение, сборка, конвертирование.
- Cairo (используется для Poppler-utils (pdftocairo)).
- Pdftk — работа с оглавлением.
- LibreOffice — поддерживается импорт и экспорт, так что есть возможность полного изменения документа.
- PDFposter — подготовка файлов большого размера к печати.
- k2pdfopt - работа с готовыми PDF-файлами - преобразование двух колонок в одну, обрезка и пр.
Команды
правитьИзвлечение страниц
правитьВсех:
pdfseparate Kniga.pdf %d.pdf
Избранных. В данном примере с 3 по 6:
pdfseparate Kniga.pdf -f 3 -l 6 %d.pdf
Извлечение изображений
правитьИзвлечение изображений JPG (параметр -j
). Извлечение без параметра -j
и изображений в других форматах — сохранение в PNM (PPM, PGM, PBM).
pdfimages -j Kniga.pdf img
Сборка страниц
правитьПеред объединением необходимо проверить именование страниц PDF в виде нумерации 000.pdf, 001,pdf… для их правильной последовательности в итоговом документе.
pdfunite *.pdf Kniga.pdf
Сборка при помощи PDFtk:
pdftk *.pdf cat output Kniga.pdf
Удаление страниц
правитьУдаление страницы 1:
pdftk Kniga.pdf cat 2-end output Output.pdf
Удаление страниц 2, 11:
pdftk Kniga.pdf cat 1 3-10 12-end output Output.pdf
Конвертирование в другие форматы
правитьВекторные
правитьПереконвертация в PDF после объединения pdfunite(1) может существенно уменьшить размер файла. Другие форматы: PS, EPS, SVG.
pdftocairo -pdf -origpagesizes Kniga.pdf Kniga2.pdf
Растровые
правитьРазрешение получаемых изображений — 200 dpi. Форматы: PNM (PPM, PGM, PBM), TIF, PNG, JPEG. Для справки наберите pdftoppm -h
, или см. pdftoppm(1). Конвертирование всех страниц PDF:
- PPM
pdftoppm -cropbox -r 200 Kniga.pdf page
- TIF
pdftoppm -cropbox -tiff -tiffcompression lzw -r 200 Kniga.pdf page
- TIF двуцветный
pdftocairo -tiff -mono -rx 600 -ry 600 -cropbox Kniga.pdf
Оглавление
правитьИзвлечение служебной информации из Kniga.pdf
, с записью в текстовый файл Oglavlenie
:
pdftk Kniga.pdf dump_data_utf8 > Oglavlenie
Редактирование Oglavlenie
. Для каждого пункта оглавления необходимо добавить четыре параметра. Пример с двумя пунктами:
... NumberOfPages: 100 BookmarkBegin BookmarkTitle: Название 1 пункта оглавления BookmarkLevel: 1 BookmarkPageNumber: 4 BookmarkBegin BookmarkTitle: Название 2 пункта оглавления BookmarkLevel: 1 BookmarkPageNumber: 7 ...
, где BookmarkLevel
— уровень пункта оглавления, BookmarkPageNumber
— порядковый номер страницы в PDF-файле.
Внедрение Oglavlenie
в Kniga.pdf
с записью результата в отдельный файл Output.pdf
:
pdftk Kniga.pdf update_info_utf8 Oglavlenie output Output.pdf
Подготовка к печати
правитьПечать чертежей или изображений размера A0 на листах размера A4:
pdfposter -m A4 -p A0 input_A0.pdf output_A4.pdf