Преобразование PDF в один с несколькими страницами на листе через командную строку

11

Допустим, я хочу slides.pdfсодержать 4 слайда на страницу.

Я могу открыть slides.pdfдокумент в evince (просмотрщик документов Ubuntu по умолчанию)

evince slides.pdf-> Print -> Page Setup -> Pages per Side -> 4 (или какой-либо другой номер)

Затем я могу указать, что хочу напечатать в файл, и распечатать. В результате получается output.pdfфайл с нужным количеством слайдов на листе.

Я хочу достичь той же функциональности через командную строку (как мне нужно включить это в сценарий). Все, что я нашел далеко, это решения, основанные на внешних инструментах. Например, я попытался установить pdfjam(что потребовало от меня установки пакетов стоимостью 88,1 МБ texlive-latex-base, чтобы получить функциональность, которая у меня уже есть!), В результате был только сбой pdfjam ERROR: LaTeX package pdfpages.sty is not installed.

Я бы предпочел избегать внешних пакетов.

Как мне добиться этого через командную строку?

user84207
источник

Ответы:

2

для выполнения IMPOSITION нет ничего лучше, чем Multivalent.jar (последняя бесплатная версия с инструментами внутри, последняя сборка Multivalent, в настоящее время размещенная на sourceforge - 2009 - больше не имеет инструментов pdf)

Вы можете скачать сборку Multivalent.jar с инструментами из:

онлайн человек - http://multivalent.sourceforge.net/Tools/pdf/Impose.html

использовать:

java -cp path...to/Multivalent.jar tool.pdf.Impose -dim (rowsxcols) -paper (paper sizes where pages will be imposed) file.pdf
Динго
источник
Спасибо! Я использовал ваше решение. Это простой, не раздутый, автономный, кроссплатформенный. Отлично.
user84207
При создании исходного кода инструменты PDF были удалены из-за проблем с авторским правом: sourceforge.net/p/multivalent/discussion/252478/thread/e7850c31/…
Лорен
20

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

pdfnup --nup 2x2 --no-landscape file.pdf

где 2х2 относится к 2 строкам по 2 столбца (или наоборот - я не уверен). Смотрите man pdfnup для большего количества опций.

Пол Роберт
источник
3
pdfnupработает отлично. Примечание для людей, которые хотят поместить один и тот же PDF-файл одной страницы четыре раза на одной странице: Вам нужно четыре раза перечислить входной PDF-файл:pdfnup --no-landscape --a4paper --nup 2x2 input.pdf input.pdf input.pdf input.pdf
guettli
1
Дополнение к вышеуказанному ответу + комментарий: pdfnup --nup 2x2 --frame true --noautoscale false --delta "0.2cm 0.3cm" --scale 0.90 your.pdfнапечатает 4 слайда на одной странице pdf-файла с именем «your-nup.pdf», используя содержимое «your.pdf» в качестве входных страниц. --frame trueпечатает рамку вокруг каждого слайда, --delta...задает поле между кадрами и --scale ...обеспечивает введение поля листа, чтобы ваш принтер хорошо справлялся с работой, не обрезая содержимое. Все варианты на www2.warwick.ac.uk/fac/sci/statistics/staff/academic-research/… .
Cbhihe
Пол Роберт: Я знаю, что ваш ответ старый, но не стесняйтесь включать мой комментарий в ваш ответ. Я не могу говорить за @guettli. Все работает хорошо для Ubuntu до 16.04 по крайней мере. (Я не тестировал его в скользящем выпуске с последними образами и пакетами ядра.) Приветствия.
Cbhihe
Кстати, pdfnup внутренне использует пакет pdfpages.sty, который оператор не хотел использовать. У меня противоположное чувство: я буду использовать пакет pdfpages.sty в TexStudio для выполнения этой работы.
Dominic108