Редактирование PDF-файлов в Linux: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
м <source> -> <syntaxhighlight> (phab:T237267)
Строка 13: Строка 13:
=== Извлечение страниц ===
=== Извлечение страниц ===
'''Всех''':
'''Всех''':
<source lang="bash">pdfseparate Kniga.pdf %d.pdf</source>
<syntaxhighlight lang="bash">pdfseparate Kniga.pdf %d.pdf</syntaxhighlight>
'''Избранных'''. В данном примере с 3 по 6:
'''Избранных'''. В данном примере с 3 по 6:
<source lang="bash">pdfseparate Kniga.pdf -f 3 -l 6 %d.pdf</source>
<syntaxhighlight lang="bash">pdfseparate Kniga.pdf -f 3 -l 6 %d.pdf</syntaxhighlight>


=== Извлечение изображений ===
=== Извлечение изображений ===
Извлечение изображений JPG (параметр <code>-j</code>). Извлечение без параметра <code>-j</code> и изображений в других форматах — сохранение в PNM (PPM, PGM, PBM).
Извлечение изображений JPG (параметр <code>-j</code>). Извлечение без параметра <code>-j</code> и изображений в других форматах — сохранение в PNM (PPM, PGM, PBM).
<source lang="bash">pdfimages -j Kniga.pdf img</source>
<syntaxhighlight lang="bash">pdfimages -j Kniga.pdf img</syntaxhighlight>


=== Сборка страниц ===
=== Сборка страниц ===
Перед объединением необходимо проверить именование страниц PDF в виде нумерации 000.pdf, 001,pdf… для их правильной последовательности в итоговом документе.
Перед объединением необходимо проверить именование страниц PDF в виде нумерации 000.pdf, 001,pdf… для их правильной последовательности в итоговом документе.
<source lang="bash">pdfunite *.pdf Kniga.pdf</source>
<syntaxhighlight lang="bash">pdfunite *.pdf Kniga.pdf</syntaxhighlight>
Сборка при помощи PDFtk:
Сборка при помощи PDFtk:
<source lang="bash">pdftk *.pdf cat output Kniga.pdf</source>
<syntaxhighlight lang="bash">pdftk *.pdf cat output Kniga.pdf</syntaxhighlight>


=== Удаление страниц ===
=== Удаление страниц ===
Удаление страницы 1:
Удаление страницы 1:
<source lang="bash">pdftk Kniga.pdf cat 2-end output Output.pdf</source>
<syntaxhighlight lang="bash">pdftk Kniga.pdf cat 2-end output Output.pdf</syntaxhighlight>
Удаление страниц 2, 11:
Удаление страниц 2, 11:
<source lang="bash">pdftk Kniga.pdf cat 1 3-10 12-end output Output.pdf</source>
<syntaxhighlight lang="bash">pdftk Kniga.pdf cat 1 3-10 12-end output Output.pdf</syntaxhighlight>


=== Конвертирование в другие форматы ===
=== Конвертирование в другие форматы ===
Строка 37: Строка 37:
==== Векторные ====
==== Векторные ====
Переконвертация в PDF после объединения {{Unix man |pdfunite|1}} может существенно уменьшить размер файла. Другие форматы: PS, EPS, SVG.
Переконвертация в PDF после объединения {{Unix man |pdfunite|1}} может существенно уменьшить размер файла. Другие форматы: PS, EPS, SVG.
<source lang="bash">pdftocairo -pdf -origpagesizes Kniga.pdf Kniga2.pdf</source>
<syntaxhighlight lang="bash">pdftocairo -pdf -origpagesizes Kniga.pdf Kniga2.pdf</syntaxhighlight>


==== Растровые ====
==== Растровые ====
Разрешение получаемых изображений — 200 dpi. Форматы: [[w:Portable anymap|PNM]] (PPM, PGM, PBM), TIF, PNG, JPEG. Для справки наберите <code>pdftoppm -h</code>, или см. {{Unix man |pdftoppm|1}}. Конвертирование всех страниц PDF:
Разрешение получаемых изображений — 200 dpi. Форматы: [[w:Portable anymap|PNM]] (PPM, PGM, PBM), TIF, PNG, JPEG. Для справки наберите <code>pdftoppm -h</code>, или см. {{Unix man |pdftoppm|1}}. Конвертирование всех страниц PDF:
; '''PPM'''
; '''PPM'''
<source lang="bash">pdftoppm -cropbox -r 200 Kniga.pdf page</source>
<syntaxhighlight lang="bash">pdftoppm -cropbox -r 200 Kniga.pdf page</syntaxhighlight>
; '''TIF'''
; '''TIF'''
<source lang="bash">pdftoppm -cropbox -tiff -tiffcompression lzw -r 200 Kniga.pdf page</source>
<syntaxhighlight lang="bash">pdftoppm -cropbox -tiff -tiffcompression lzw -r 200 Kniga.pdf page</syntaxhighlight>
; '''TIF двуцветный''':
; '''TIF двуцветный''':
<source lang="bash">pdftocairo -tiff -mono -rx 600 -ry 600 -cropbox Kniga.pdf</source>
<syntaxhighlight lang="bash">pdftocairo -tiff -mono -rx 600 -ry 600 -cropbox Kniga.pdf</syntaxhighlight>


=== Оглавление ===
=== Оглавление ===
'''Извлечение''' служебной информации из <code>Kniga.pdf</code>, с записью в текстовый файл <code>Oglavlenie</code>:
'''Извлечение''' служебной информации из <code>Kniga.pdf</code>, с записью в текстовый файл <code>Oglavlenie</code>:
<source lang="bash">pdftk Kniga.pdf dump_data_utf8 > Oglavlenie</source>
<syntaxhighlight lang="bash">pdftk Kniga.pdf dump_data_utf8 > Oglavlenie</syntaxhighlight>


'''Редактирование''' <code>Oglavlenie</code>. Для каждого пункта оглавления необходимо добавить четыре параметра. Пример с двумя пунктами:
'''Редактирование''' <code>Oglavlenie</code>. Для каждого пункта оглавления необходимо добавить четыре параметра. Пример с двумя пунктами:
Строка 67: Строка 67:


'''Внедрение''' <code>Oglavlenie</code> в <code>Kniga.pdf</code> с записью результата в отдельный файл <code>Output.pdf</code>:
'''Внедрение''' <code>Oglavlenie</code> в <code>Kniga.pdf</code> с записью результата в отдельный файл <code>Output.pdf</code>:
<source lang="bash">pdftk Kniga.pdf update_info_utf8 Oglavlenie output Output.pdf</source>
<syntaxhighlight lang="bash">pdftk Kniga.pdf update_info_utf8 Oglavlenie output Output.pdf</syntaxhighlight>


=== Подготовка к печати ===
=== Подготовка к печати ===
'''Печать''' чертежей или изображений размера A0 на листах размера A4:
'''Печать''' чертежей или изображений размера A0 на листах размера A4:
<source lang="bash">pdfposter -m A4 -p A0 input_A0.pdf output_A4.pdf</source>
<syntaxhighlight lang="bash">pdfposter -m A4 -p A0 input_A0.pdf output_A4.pdf</syntaxhighlight>


== См. также ==
== См. также ==

Версия от 16:05, 16 апреля 2020

Этот учебник посвящён краткому описанию примеров редактирования PDF-файлов в операционной системе Linux.


Программное обеспечение

  1. PDFShuffler (GUI для Python-pyPdf) — извлечение, добавление, удаление, поворот, изменение порядка, обрезка страниц PDF.
  2. Poppler-utils (pdfseparate, pdfunite, pdftocairo, pdftoppm, pdfimages и др.) — извлечение, сборка, конвертирование.
  3. Cairo (используется для Poppler-utils (pdftocairo)).
  4. Pdftk — работа с оглавлением.
  5. LibreOffice — поддерживается импорт и экспорт, так что есть возможность полного изменения документа.
  6. PDFposter — подготовка файлов большого размера к печати.

Команды

Извлечение страниц

Всех:

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

См. также