Объедините несколько файлов PDF в один (в виде матрицы)


11

Имея набор 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
Вы правы насчет того, что montageделает :).
Михал Гурни,

Ответы:


9

Вы можете использовать утилиту pdfnupиз пакета pdfjam .

pdfnup in.pdf --nup 3x3

должен вывести файл in-nup.pdf со страницами in.pdf, расположенными в виде серии страниц с матрицей 3x3 из исходного файла pdf.

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


1
Если у вас есть префикс во всех входных файлах (то есть in-), вы можете использовать его, pdfnup in-*.pdf --nup 3x3 --outfile out.pdfчтобы избежать наличия выходного файла с таким же префиксом. Также обратите внимание, что вам не нужно объединять все входные файлы в один (вы можете просто использовать *подстановочный знак). Вы можете добавить это к своему ответу.
Пек

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