Имея набор PDF-файлов, скажем: in-01.pdf
, in-02.pdf
, in-03.pdf
, ... я хотел бы объединить их все в один, образовав M x N
матрицу.
Команда montage
позволяет это сделать ( M
и N
должны быть целыми числами):
montage -mode concatenate -tile NxM in-*.pdf out.pdf
Проблема в том, что размер полученного PDF огромен, хотя я ожидал бы, что он будет (может быть, просто) немного больше суммы размеров всех входных PDF. Я думаю, что montage
сначала нужно преобразовать входные PDF в изображения, а затем создать выходной PDF из этих изображений (например, текст в исходных PDF не отображается как текст в выходном PDF, а как изображение с более низким качеством и большим размером).
Полагаю, должен быть способ сделать это (например, LATEX позволяет вставлять изображение PDF в другой PDF без необходимости предварительного преобразования его в изображение).
Я ищу альтернативу командной строке, использующую бесплатные программные инструменты в системах GNU/Linux.
ПРИМЕЧАНИЕ: мы можем предположить, что все эти файлы PDF имеют одинаковые точные размеры (ширину и высоту). Это автоматически сгенерированные изображения PDF, обычно состоящие из графика (простые фигуры, линии и прямоугольники) и немного текста (заголовок, метки...).
решение1
Вы можете использовать служебную программу pdfnup
изpdfjamлюкс.
pdfnup in.pdf --nup 3x3
должен вывести файлв-nup.pdfсо страницамив формате .pdfорганизованы в ряд страниц с матрицей 3x3 из исходного PDF-файла.
Вам следует объединить все ваши файлы PDF в один, также вам необходимо указать размер бумаги для выходного файла, подробности см. в документации pdfjam.
решение2
Макет, который вы пытаетесь здесь воспроизвести, называетсяN-вверх. Есть несколько способов сделать это. Как в комментарии xae, вы можете сделать это с помощью pdfjam. Смотрите мой комментарий там. Например:
pdfjam --suffix nup --nup 2x2 input.pdf
создаст 4-up, матрицу 2x2. В качестве альтернативы вы можете передать --landscape
опцию для ориентации матрицы как при просмотре с альбомной, а не портретной ориентации.
Вы также можете сделать это, пройдясь по постскриптуму
pdf2ps input.pdf input.ps
psnup -4 input.ps output.ps
ps2pdf output.ps output.pdf
где -4
означает 4-up (2x2)
И если вы напрямую пытаетесь распечатать этот файл pdf на Linux, я думаю, что клиент CUPS включает версию спулера печати Berkley LPR ( lpr
) с опцией N-up. Вы можете использовать опцию с
lpr -o number-up=4 input.pdf
или установить его по умолчанию
lpoptions -p QueueName -o number-up=4