Как разбить PDF на несколько страниц в командной строке?


8

Как я могу разделить (плитку?) Один огромный PDF на несколько страниц? Результатом может быть один PDF-файл с несколькими страницами формата A4 или несколько файлов формата A4.

Хотя я сгенерировал PDF-файл, dotя хотел бы решить эту проблему в целом - или, по крайней мере, на стандартной Ubuntu (например, 12.04).

Входной PDF был сгенерирован Graphviz dot, например. dot -Tpdf sample.dot > sample.pdf, Когда я не добавил size="8,11"; ratio="fill";к графику выходной PDF очень большой. Если я добавлю подсказки размера / заполнения, то dotтолько уменьшу масштаб для меня.

Давайте приведем один пример:

Если бы мой оригинальный PDF был таким большим:

+-------------------+
|                   |
|  O                |
|  :                |
|  :..........C     |
|  :        :       |
|  :        :       |
|  :        :       |
|  :        G       |
|  :        :       |
|  :        :       |
|  :        :       |
|  :        :       |
|  U        :       |
|           B       |
|                   |
+-------------------+

Это должно быть разделено командой вроде

pdftile sample.pdf -x 2 -y 3 > sample-2x3.pdf

в

+---------+---------+
|         |         |
|  O      |         |
|  :      |         |
|  :......|...C     |
|  :      | :       |
+---------+---------+
|  :      | :       |
|  :      | :       |
|  :      | G       |
|  :      | :       |
|  :      | :       |
+---------+---------+
|  :      | :       |
|  :      | :       |
|  U      | :       |
|         | B       |
|         |         |
+---------+---------+

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


См. Также superuser.com/questions/54054 и дубликаты кандидатов.
Скиппи ле Гран Гуру

Ответы:


7

Похоже, что pdfposter может сделать это.


Да, это обещает сделать это, но это не работает :-(
Рене Ниффенеггер

@ RenéNyffenegger: pdfposter, кажется, сломан для некоторых людей. Посмотрите этот отчет об ошибке для обходного пути.
tonysdg

Точно то, что я искал, у меня есть большой файл PDF диаграммы ERD, сгенерированный с помощью rails-erd и graphviz, я мог бы превратиться в файл из нескольких страниц. pdfposter -p2x999a4дал мне 22 страницы, -p999x2a444 страницы
Матье Ж.

5

На самом деле mutoolсинтаксис почти такой же, как и тот, который вы предлагаете (вы его автор ??):

mutool -x 2 -y 3 sample.pdf sample-2x3.pdf

Чтобы установить mutool, просто установите mupdf, который, вероятно, поставляется с большинством дистрибутивов GNU / Linux.


работал как мечта, чтобы разбить мой плакат А0 до версии А3 для черновой печати.
oliversm

4

Взгляните на http://www.graphviz.org/doc/FAQ.html : Q14. Как я могу напечатать большой график на нескольких страницах?

Атрибут page, если установлен, говорит Graphviz распечатать график как массив страниц заданного размера. Таким образом, график

орграф G {page = "8.5,11"; ...}

будет испускаться как 8,5 на 11-дюймовые страницы. При печати страницы можно разбить на листы, чтобы нарисовать весь график. В настоящее время эта функция работает только с выводом PostScript. Кроме того, существуют различные инструменты и средства просмотра, которые сделают большую картинку и позволят вам извлечь фрагменты размером с страницу, которые затем можно будет распечатать.

ТОЛЬКО постскриптум! Но для автоматизации нет шоустоппера :-). Просто позвольте ps2pdf запустить его. Это сработало для меня.


3

На ум приходят несколько утилит linux:

(из их справочных страниц)

pdfseperate [ опции ] INPUT.PDF OUTPUT% d.PDF

читает INPUT.PDF, извлекает одну или несколько страниц и записывает один файл PDF для каждой страницы в OUTPUT% d.PDF (% d является заполнителем для номера страницы) (из пакета 'poppler-utils')

pdftk INPUT.PDF взрыв

читает INPUT.PDF, создавая один или несколько файлов PDF, содержащих отдельные страницы, с именем 'pg-XXXX.pdf' (если не указано имя выходного файла) (из пакета 'pdftk')

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.