Я много искал для этого, но не смог найти решение.
Как я могу создать PDF в произвольном бумажном формате (скажем, A4) и заполнить его страницы как можно большим количеством копий изображения?
Я ищу решение CLI, используя такие программы, как ImageMagick, Poppler, Ghostscript и тому подобное.
Мой пример использования: изменил пароль для гостей Wi-Fi в моем офисе, хотел разослать хороший PDF-файл формата А4, состоящий из плотной сетки, каждая ячейка, содержащая сетевой SSID и ключ WPA, должна быть распечатана, разрезана на части для гостей, посещающих.
Не смог найти способ сделать это и прибегнул к вставке крошечных изображений вручную на страницу с помощью MS Word.
РЕДАКТИРОВАТЬ: как выглядели эти крошечные изображения. Просто набрал в текстовом редакторе и сделал скриншот текста.
Я буду менять этот пароль один раз каждые 3 месяца, поэтому я бы хотел автоматизированное решение с возможностью написания сценариев. Не нужно быть идеальным, но должно быть быстрым.
montage
некоторыми вариантами, и изображения были размытыми, поэтому я перешел к другим методам. Я также не уменьшил размер исходного файла, чтобы уменьшить его, чтобы увидеть, как разместить более мелкие изображения на одном листе, но я предполагаю, что этого будет достаточно для базовой отправной точки, по крайней мере, для того, чтобы заставить вас заняться автоматизацией в скрипт и такой для вашей задачи.Вы можете сделать это с помощью Pandoc и вывести PDF.
Первый метод: вставьте одну строку текста в Markdown, а не изображения в MS Word.
Вместо вставки изображения в документ MS Word, вы также можете вставить эту строку в текстовый файл, который вы будете называть
my-markdown.md
:Это поместило бы 3 изображения в строку. Конечно, вы можете изменить ширину на любое значение, которое вы хотите. Я предполагаю, что вы можете сделать с 60 одинаковыми строками при использовании
width="33%"
и со 112 одинаковыми строками при использованииwidth="24%"
(4 изображения в строке).Поскольку вам нужны «произвольные форматы бумаги (скажем, А4)» , я приведу вам пример почти А4 . Вы должны будете преобразовать это в PDF как это:
Скриншот:
Второй метод: сделать все это в одной командной строке
Поскольку сейчас у меня нет доступной системы Windows, поэтому я могу подтвердить и протестировать ее с помощью
Powershell
илиcmd.exe
, приведу пример Linux / macOS Bash:Первая часть выше записывает одну и ту же строку 112 раз
<stdout>
, но передает ее в Pandoc<stdin>
для дальнейшей обработки без записи файла Markdown.источник