Меню Рубрики

Как объединить pdf файлы в один в linux

Как: Объединить PDF Файлы — Linux Командная Строка

Иногда возникает необходимость объединить несколько PDF файлов в один.

Из командной строки в Linux можно легко соединить множество PDF файлов с помощью утилиты convert , которая является частью пакета ImageMagick.

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

Дельный Совет: Планируете куда-то отправить PDF файл или просто сохранить? Как насчет защитить его паролем? Это легко сделать для человека, который склеивает PDF файлы из командной строки! Читать далее →

Прежде всего необходимо поставить пакет ImageMagick, частью которого является утилита convert :

Объединить Несколько PDF в Один

Объединить два PDF файла FILE1.pdf и FILE2.pdf в новый файл OUTPUT.pdf :

Склеить Страницы в Один PDF

Обратите внимание: Счет страниц начинается с нуля.

Для этого мы передадим команде convert имена файлов с указанием необходимы страниц в квадратных кнопках.

Соединить 2-ую страницу из первого файла FILE1.pdf с 1-ой и 6-ой страницами из второго файла FILE2.pdf и сохранить результат в новый файл OUTPUT.pdf :

Множество Страниц в Один PDF Файл

И конечно же, существует возможность соединять целые множества страниц.

Дельный Совет: Считаете себя настоящим Linux гиком? Качайте видео с YouTube из командной строки! Читать далее →

Источник

Записки дебианщика

В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.

Как объединить и разбить PDF в Linux подручными средствами

В этой безблагодатной и беспросветной жизни, когда тебе в линукс присылают документы в DocX и формы в последнем Adobe Acrobat, приходится несладко. Часто заполненные с воем и рыданиями PDF-файлы приходится склеивать или, наоборот, разрезать на несколько. К счастью,деятели опенсорса иногда отвлекаются от Wayland, Mir и прочих systemd и делают годные костыли для простых страждущих.

Объединение файлов pdf в один с помощью PDFSaM

Как это всегда бывает, когда что-то кажется слишком прекрасным, чтобы быть правдой, обязательно найдётся заподлянка. И pdfsam не исключение — написан он на Java, а это значит кучи exceptions по поводу и без, лютые тормоза и интерфейс из фильма ужасов.

Установка и использование PDFsam в Linux

Собственно, дальше всё довольно просто: pdfsam умеет объединять (merge), разрезать (split), поворачивать (rotate) документы PDF. Кроме того, имеет место быть режим burst, при котором из одного PDF-файла будет сделана куча одностраничных.

Например, для объединения PDF-файлов в один, просто добавляем файлы в порядке следования, выбираем новое имя файла и жмём RUN.

Из преимуществ можно отметить разве что графический, скажем так, интерфейс. Всё остальное — это типичное джава приложение: глючное, медленное и корявое (например, при split нужно указывать номер страницы, на единицу меньший той, с которой разрезание начнётся, и т.д.).

Сжатие и компрессия PDF файлов

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Мастерам консоли: резка и склейка PDF файлов в pdftk

pdftk исходный_файл.pdf ДЕЙСТВИЕ страницы output получаемый_файл.pdf

Как разбить PDF файл на несколько

$ pdftk document.pdf cat 140-142 output zz1.pdf

$ pdftk foo.pdf cat 30-end output biography.pdf

Объединение нескольких файлов PDF в один с помощью PDFtk

$ pdftk 1.pdf 2.pdf . cat output merged.pdf

Изменение полей PDF-документа

pdftk book.pdf dump_data output report.txt

InfoKey: Title
InfoValue: Coders At Work
InfoKey: Author
InfoValue: Peter Seivel
InfoKey: Subject
InfoValue: Programming

pdftk book.pdf update_info report.txt output bookcopy.pdf

У pdf-документов могут быть и другие поля, которые тоже можно поправить при желании.

И это ещё не всё!

Возможности pdftk весьма велики, и желающие могут припасть к официальной документации.

Склейка страниц PDF файла в буклет с помощью LaTeX pdfpage

Отличная иллюстрация мощи пакета pdfpages была найдена на tex.stackexchange.com. Идея сводится к тому, что сначала мы создаём исходный документ, а потом ещё один, в который вставляются PDF-страницы в нужном порядке.

Например, у нас есть документ под формат А6, созданный в ЛаТеХе (назовём его mya6doc.pdf:

Теперь создаём ещё один документ (назовём его mya4doc):

Скомпилировать его нужно с помощью pdflatex. Это позволит получить все страницы ( pages=- ) в 2×2 страницы на одной ( nup=2×2 ) с прорисованной границей вокруг каждой страницы ( frame ).

Это означает, что pdfpages воспринимает вставляемые страницы как изображения, так что можно дополнительно задать поля для обрезки:

то есть страница будет обрезана на 1, 2, 3, 4 сантиметра слева, снизу, справа и сверху. Опция clip=true обрежет страницу.

Путь джедая: склеивание PDF документов с помощью gs

$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf file1.pdf file2.pdf

Теперь что это всё значит:

Преимущество такого джедайства в том, что Ghostscript входит во все дистрибутивы Linux и часто уже установлен в системе. И не нужно тащить килотонны джавы.

Сохранение размеров EPS файлов при конвертировании в PDF

Я не буду говорить о вменяемости авторов ps2pdf, но всякий разработчик с IQ выше комнатной температуры должен понимать, что подобные WTF-моменты в пользовательском опыте в конечном итоге приводят к тому, год линупсов на десктопе уезжает в голубую даль. И это происходит именно из-за таких вот казусов, коих в ёпенсорце год от года становится только больше из-за набегающих леннартов поттерингов и прочих ковбоев, склонных к тяжёлому велосипедостроению там, где этого абсолютно не требуется.

Так как ps2pdf принимает те же аргументы, что и Ghostscript, имеющий 900 газиллионов опций, среди которых должна быть возможность сохранять BoundingBox. И таки да, чудо случилось:

который даёт тот самый PDF, который от него, собственно, и ждёшь.

Заключение

16 комментариев: |высказаться!| RSS-лента дискуссии.|

Совсем не понимаю, почему не удостоена вниманием библиотека Poppler, с замечательными утилитами pdfseparate и pdfunite? А еще, богатые возможности GhostScript? Вместо этого какие-то поделки на Java и Tcl.

Ещё есть один проект PDF-Shuffler:
http://sourceforge.net/projects/pdfshuffler/
Для обычной склейки pdf, удаления страниц обычно вполне хватает.

В последнее время каждая заметка превращается в плач Ярославны и смачный пинок под зад линуксу. Если работа в Linux у автора сопряжена с воем и рыданием, что мешает поставить ОС проприетарную? Конечно, не факт, что воя и рыданий там будет меньше.

Важная информация собранная в одном месте и искрометный юмор.
Получил массу удовольствия от вашей статьи!
Большое спасибо!
Кстати, вопрос:
Приходилось ли вам встречать программу (решение, велосипед, волшебную фразу) для заполнения кириллицей pdf с полями для ввода текста?

Для конвертирования eps в pdf всё время пользовался утилитой epstopdf, у которой всё в порядке с BoundingBox. Статья подвигла меня выяснить, из какого-таки пакета родом это чудо (раз, по-видимому, в стандартных его нет); оказалось, что из texlive-font-utils.
Так уж случилось, что texlive я все время ставил на всю катушку, и соответственно, epstopdf была всегда под рукой, а косяка в ps2pdf не замечал. А косяк, да, отвратительный.
Ну а за статью спасибо.

dimio комментирует. 20 нояб. 2013 г., 20:29:00

к pdftk есть графические фронтэнды

Совсем не понимаю, почему не удостоена вниманием библиотека Poppler, с замечательными утилитами pdfseparate и pdfunite?

В моём дебиане этого нет. А pdftk есть — у него, кстати, один из самых вменяемых командных интерфейсов.

А еще, богатые возможности GhostScript?
В гробу я их видал, эти «богатые возможности», особенно вот это:

ps2pdf -dEPSCrop letterhead.eps

В посте я про это уже сказал, что так делают только полные [цензура].

Вместо этого какие-то поделки на Java и Tcl.
Главное, Володя, что они работают, а то мне надо было отправлять заявку на грант, а оно просит ОДИН большой PDF-файл, а не пару мелких. Мне ехать, а не шашечки.

@Viktor Yu. Kovalskiy комментирует.
Ещё есть один проект PDF-Shuffler:
Виктор, есть проблема:

PDF-Shuffler is a small python-gtk application

У меня уже стоит пистон2.4 для старых скриптов, пистон 2.6 для почти всего, а на днях пионэр-автор ReTeXt перешёл на пистон3. Как бы это помягче выразиться, но я не стану превращать свой ноутбук в гадюшник.

@redVi комментирует.
В последнее время каждая заметка превращается в плач Ярославны и смачный пинок под зад линуксу.
Возможно потому, что время идёт, Андроид занимает 80% рынка мобильников, а десктопный линукс где был, там и остаётся. И особых подвижек в сторону большего количества нормального софта я не вижу: как стоял у меня ВиртуальныйЯщик с виндовым софтом, так и стоит.

А возможно, мне нужно взять перекур с блогом. У меня уже были мысли прикрыть эту лавку. но я просто хочу взять тайм-аут. Тем более, что у меня на носу переезд в другой университет.

Если работа в Linux у автора сопряжена с воем и рыданием, что мешает поставить ОС проприетарную?
Я пристально смотрю на Мак, но там свои косяки, самый главный из которых — мне навязывают макинтошный стиль работы. А это deal-braker.

@inickto комментирует.
Важная информация собранная в одном месте и искрометный юмор.
Насчёт последнего автор не уверен, а про информацию — это да, долго собирал.

Приходилось ли вам встречать программу (решение, велосипед, волшебную фразу) для заполнения кириллицей pdf с полями для ввода текста?

Всё, что я слышал, это то, что есть FDF-toolkit, но никогда этим не пользовался. Я уж как-нибудь по-старинке, вприсядку 🙂

@riedel комментирует.
Для конвертирования eps в pdf всё время пользовался утилитой epstopdf, у которой всё в порядке с BoundingBox.

Хммм, это интересно. Я про эту утилиту, если честно, не знал. Или забыл. Она в моём дебиане тут:

что, конечно, сразу очевидно 🙂

Статья подвигла меня выяснить, из какого-таки пакета родом это чудо
Ну да, оно не в самом видном месте, скажем так. Просто мой шеф любит pdflatex, и всегда меня долго и громко благодарит на испанском за то, что у меня какие-то eps. Я как-то прошёлся ps2eps14 по постскриптам, сконпелировал и обомлел. Найти волшебный ключик -dEPSCrop стоило, скажем мягко, усилий, что и послужило причиной эмоциональной реакции в посте.

А косяк, да, отвратительный.
Я бы мог отнестись с бОльшим пониманием, если бы сохранение размеров было по умолчанию, а вклейка в пустой А4 файл — опцией. Но я и авторы ps2pdf курим разные шишки 🙂

Ну а за статью спасибо.
Пожалуйста. А вам спасибо за epstopdf. Век живи — век учись.

@dimio комментирует.
к pdftk есть графические фронтэнды
А можно ссылок в студию? А то у меня только pdftk и ничего больше.

@virens комментирует.
В моём дебиане этого нет. А pdftk есть
Это требует Tcl/Tk, у меня этого нет. Так что о годности софта будем судить по тому, требуется ли ввести «apt-get install» или нет?

Под линукс? Нет, конечно: там и выделенный текст-то в PDF-файлах вытаскивается с воем и рыданиями
Я уже давал ссылку на свой репозиторий, но похоже, что не в того коня корм. Зато разводить плачи Ярославны это так по-мужски.

И особых подвижек в сторону большего количества нормального софта я не вижу: как стоял у меня ВиртуальныйЯщик с виндовым софтом, так и стоит.
Так и есть, и будет всегда. Потому что Linux — среда для программистов, это ни плохо ни хорошо, это просто факт. Почитай Спольски на эту тему, я с ним абсолютно согласен.

У меня уже были мысли прикрыть эту лавку. но я просто хочу взять тайм-аут.
Может, тебе стоит составить такой же список «Я не перестану вести этот блог, потому что…» для себя?

Я бы мог отнестись с бОльшим пониманием, если бы сохранение размеров было по умолчанию, а вклейка в пустой А4 файл — опцией. Но я и авторы ps2pdf курим разные шишки 🙂
Михаил, ты не понимаешь разницы между PS и EPS, а начинаешь опять про вселенский заговор против пользователей линукса. BoundingBox входит в стандарт EPS, термин «Encapsulated» на это недвусмысленно намекает. PostScript, напротив, не поддерживает размер изображения, это там просто нет. Выучи матчасть наконец. То есть, только epstopdf. Есть и у нее заморочки, например, если в рисунке подписи выполнены LaTeX-шрифтом, то BoundingBox определяется некорректно, но это уже проблемы самого шрифта, для которого заранее нельзя определить размер символов.

Анонимно комментирует. 21 нояб. 2013 г., 17:52:00

Что-то совсем не похоже на подручные средства. Все эти программы надо устанавливать.

Спасибо за статью, как раз сегодня понадобилось.

Сравнил варианты с использованием gs и pdftk, последний работает гораздо быстрее (3m38.926s и 11.654s, соответственно). При этом gs выполняет оптимизацию получившегося документа (размер склеенного pdf меньше суммарного размера исходных файлов), а pdftk — нет, размеры совпадают.

Не критики ради, а просто в качестве уточнения:

1. ps2pdf — это и есть GhostScript. Все эти утилиты (ps2pdf*) являются sh-скринтами обёртками к gs с параметром -sDEVICE=pdfwrite. В этом легко убедиться сделав «less /usr/bin/ps2pdfwr»

2. Более «продвинутые» sh-обёртки, вроде eps2pdf, можно взять здесь:
http://www.few.vu.nl/

3. epstopdf — это тоже обёртка вокруг gs, но на этот раз на Perl’е

4. Вот здесь http://pdfchain.sourceforge.net/links.html неплохой набор ссылок на программы для работы с pdf.

Я обычно вот эту штуку использую: http://jpdftweak.sourceforge.net/

«Склейка в буклет» по-научному называется спуск полос. Истинный путь этого в линупсе — при помощи ghostscript и psutils, скрипт в одну строчку.

Самая простая склейка JPG в PDF:
convert *.jpg 1.pdf

Анонимно комментирует. 6 апр. 2014 г., 08:11:00

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Как обозначается флешка в linux
  • Как обнулить файл в linux
  • Как обновить ядро linux debian
  • Как обновить ядро kali linux
  • Как обновить скайп для linux