Поиск по сайту:

Как создавать и объединять PDF-файлы в командной строке Linux


Файлы PDF были разработаны для содействия совместному использованию. Каждый может открыть их — в своем веб-браузере, если у него нет ничего другого. Linux позволяет управлять, объединять и разделять файлы PDF в командной строке.

Портативный формат документа

Portable Document Format (PDF) решил проблему. Когда вы создавали документ на компьютере и хотели поделиться им с кем-то еще, отправить ему документ не всегда получалось.

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

Если бы у них не было копии программного обеспечения, которое вы использовали для создания пакета, они вообще не смогли бы его открыть. Если вы использовали программное обеспечение, доступное только для Linux, бессмысленно отправлять этот документ тому, кто использует только Windows.

Adobe создала новый формат файла в 1992 году и назвала его переносимым форматом документа. Документы, созданные в соответствии с этим стандартом — ISO 32000 — содержат изображения и шрифты, необходимые для правильного отображения содержимого файла. Файлы PDF можно открывать в программах просмотра PDF на любой платформе. Это было кросс-платформенное, простое и элегантное решение.

Файл PDF не предназначен для податливости, как документ текстового процессора. Они не охотно поддаются редактированию. Если вам нужно изменить содержимое PDF-файла, всегда лучше вернуться к исходному материалу, отредактировать его и создать новый PDF-файл. В отличие от попытки изменить содержимое, структурные манипуляции с PDF-файлами можно выполнять относительно легко.

Вот несколько способов создания PDF-файлов в Linux и способы выполнения некоторых преобразований, которые можно к ним применить.

Создание PDF-файлов в Linux

Многие приложения, доступные в Linux, могут напрямую создавать PDF-файлы. В LibreOffice есть кнопка прямо на панели инструментов, которая создает PDF-файл текущего документа. Это не может быть проще.

Приложение Scribus для настольной публикации трудно превзойти в точном управлении созданием PDF-файлов.

Если вам нужно создавать документы научного или математического содержания, возможно, для отправки в академические журналы, вам идеально подойдет приложение, использующее LaTeX, например Texmaker.

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

Сначала установите Texmaker. pandoc использует некоторые библиотеки LaTeX для создания PDF. Установка Texmaker — удобный способ удовлетворить эти зависимости.

Параметр -o (выходной) используется для указания типа файла, который будет создан. Файл «raw-notes.md» представляет собой обычный текстовый файл Markdown.

pandoc -o new.pdf raw-notes.md

Если мы откроем файл «new.pdf» в программе просмотра PDF, мы увидим, что это правильно сформированный PDF-файл.

Команда qpdf

Команда  qpdf  позволяет управлять существующими PDF-файлами, сохраняя при этом их содержимое. Изменения, которые вы можете внести, носят структурный характер. С помощью qpdf вы можете выполнять такие задачи, как объединение PDF-файлов, извлечение страниц, поворот страниц, а также установка и удаление шифрования.

Чтобы установить qpdf в Ubuntu, используйте эту команду:

sudo apt install qpdf

Команда в Fedora:

sudo dnf install qpdf

В Manjaro вы должны ввести:

sudo pacman -S qpdf

Объединение файлов PDF

Сначала синтаксис командной строки qpdf может показаться запутанным. Например, многие команды ожидают входной файл PDF.

Если команда не требует этого, вместо этого вам нужно использовать параметр --empty. Это говорит qpdf не ожидать входного файла. Опция --pages позволяет выбирать страницы. Если вы просто укажете имена PDF, будут использованы все страницы.

Чтобы объединить два файла PDF в новый файл PDF, используйте этот формат команды.

qpdf --empty --pages first.pdf second.pdf -- combined.pdf

Эта команда состоит из:

  • qpdf: вызывает команду qpdf.
  • –пусто: сообщает qpdf, что входного PDF-файла нет. Вы можете возразить, что «first.pdf» и «second.pdf» являются входными файлами, но qpdf считает их параметрами командной строки.
  • –pages: сообщает qpdf, что мы будем работать со страницами.
  • first.pdf second.pdf: два файла, из которых мы собираемся извлечь страницы. Мы не использовали диапазоны страниц, поэтому будут использоваться все страницы.
  • : указывает конец параметров команды.
  • combined.pdf: имя создаваемого файла PDF.

Если мы будем искать файлы PDF с помощью ls, мы увидим два исходных файла — нетронутых — и новый PDF-файл с именем «combined.pdf».

ls -hl first.pdf second.pdf combined.pdf

В файле «first.pdf» есть две страницы, а в файле «second.pdf» — одна страница. Новый PDF-файл состоит из трех страниц.

Вы можете использовать подстановочные знаки вместо перечисления большого количества исходных файлов. Эта команда создает новый файл с именем «all.pdf», который содержит все файлы PDF в текущем каталоге.

qpdf --empty --pages *.pdf -- all.pdf

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

Это позволит извлечь первую и вторую страницы из «first.pdf» и вторую страницу из «second.pdf». Обратите внимание: если файл «combined.pdf» уже существует, он не перезаписывается. В него добавлены выбранные страницы.

qpdf --empty --pages first.pdf 1-2 second.pdf 1 -- combined.pdf

Диапазоны страниц могут быть настолько подробными, насколько вам нравится. Здесь мы запрашиваем очень конкретный набор страниц из большого PDF-файла и создаем итоговый PDF-файл.

qpdf --empty --pages large.pdf 1-3,7,11,18-21,55 -- summary.pdf

Выходной файл «summary.pdf» содержит страницы с 1 по 3, 7, 11, с 18 по 21 и 55 из входного файла PDF. Это означает, что в файле «summary.pdf» 10 страниц.

Мы видим, что страница 10 — это страница 55 из исходного PDF.

Разделение файлов PDF

Противоположностью объединению файлов PDF является разделение файлов PDF. Чтобы разделить PDF-файл на отдельные PDF-файлы, каждый из которых содержит одну страницу, синтаксис прост.

Файл, который мы разделяем, называется «summary.pdf», а выходной файл имеет имя «page.pdf». Это используется в качестве базового имени. Каждый новый файл имеет номер, добавленный к базовому имени. Опция --split-pages сообщает qpdf, какой тип действия мы выполняем.

qpdf summary.pdf page.pdf --split-pages

Результат представляет собой серию последовательно пронумерованных PDF-файлов.

ls page*.pdf

Если вы не хотите разделять каждую страницу, используйте диапазоны страниц, чтобы выбрать нужные страницы.

Если мы выполним эту следующую команду, мы разделим коллекцию одностраничных PDF-файлов. Диапазоны страниц используются для указания нужных страниц или диапазонов, но каждая страница по-прежнему хранится в одном PDF-файле.

qpdf large.pdf section.pdf --pages large.pdf 1-5,11-14,60,70-100 -- --split-pages

Извлеченные страницы имеют имена на основе «section.pdf» с добавленным к ним порядковым номером.

ls section*.pdf

Если вы хотите извлечь диапазон страниц и сохранить его в одном PDF-файле, используйте команду этой формы. Обратите внимание, что мы не включаем параметр --split-pages. По сути, то, что мы здесь делаем, — это слияние PDF, но мы только «объединяем» страницы из одного исходного файла.

qpdf --empty --pages large.pdf 8-13 -- chapter2.pdf

При этом создается один многостраничный PDF-файл с именем «chapter2.pdf».

Вращающиеся страницы

Чтобы повернуть страницу, мы создаем новый PDF-файл, такой же, как исходный PDF-файл с повернутой указанной страницей.

Для этого мы используем параметр --rotate. +90 означает поворот страницы на 90 градусов по часовой стрелке. Вы можете повернуть страницу на 90, 180 или 270 градусов. Вы также можете указать вращение в градусах против часовой стрелки, используя отрицательное число, но в этом нет необходимости. Поворот на -90 такой же, как и на +270.

Число, отделенное от поворота двоеточием «:», — это номер страницы, которую вы хотите повернуть. Это может быть список номеров страниц и диапазонов страниц, но мы просто чередуем первую страницу. Чтобы повернуть все страницы, используйте диапазон страниц 1-z.

qpdf --rotate=+90:1 summary.pdf rotated1.pdf

Первая страница была повернута для нас.

Шифрование и дешифрование

PDF-документы могут быть зашифрованы, чтобы для их открытия требовался пароль. Этот пароль называется пароль пользователя. Есть еще один пароль, который требуется для изменения настроек безопасности и других разрешений для PDF. Он называется пароль владельца.

Чтобы зашифровать PDF-файл, нам нужно использовать параметр --encrypt и указать оба пароля. Пароль пользователя идет первым в командной строке.

Мы также указываем силу шифрования для использования. Вам нужно всего лишь перейти с 256-битного шифрования на 128-битное, если вы хотите поддерживать очень старые программы просмотра PDF-файлов. Мы рекомендуем вам придерживаться 256-битного шифрования.

Мы собираемся создать зашифрованную версию «summary.pdf» под названием «secret.pdf».

qpdf --encrypt hen.rat.squid goose.goat.gibbon 256 -- summary.pdf secret.pdf

Когда мы пытаемся открыть PDF, программа просмотра PDF запрашивает пароль. Ввод пароля пользователя разрешает программе просмотра открыть файл.

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

Чтобы расшифровать файл, используйте параметр --decrypt. Очевидно, что для этого вам необходимо знать пароль owner. Нам нужно использовать параметр --password для определения пароля.

qpdf --decrypt --password=goose.goat.gibbon secret.pdf unlocked.pdf

«Unlocked.pdf» можно открыть без пароля.

qpdf — отличный инструмент

Мы глубоко впечатлены qpdf. Он предоставляет гибкий и многофункциональный набор инструментов для работы с файлами PDF. И это тоже очень быстро.

Ознакомьтесь с их хорошо написанной и подробной документацией , чтобы увидеть, насколько больше он может сделать.