Создать PDF, где каждая страница представляет собой слияние изображения и SVG-файла. - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть последовательность изображений 1.jpg, 2.jpg, ..., 10.jpg и последовательность SVG 1.svg, 2.svg, ..., 10.svg. Можно ли превратить их в один PDF-документ, где i-я страница представляет собой композицию i.svg поверх i.jpg? А именно, я хотел бы расположить i.svg над i.jpg - как i-ую страницу в документе.

Я знаю, что pdfTk иногда может быть полезен для таких задач, но я не мог найти способ для достижения этой цели. Я также попробовал ImageMagick, используя следующую команду:

composite -compose atop -geometry "20%+10%" -gravity southwest "1.svg" "2.jpg" "output.pdf"

, но вывод был искажен.

1 Ответ

0 голосов
/ 23 апреля 2020

Вы можете сделать это в Imagemagick, используя составную -layers следующим образом

convert -density XX *.svg null: *.jpg -compose atop -layers composite result.pdf

Вы можете заменить * .svg списком файлов SVG и * .jpg списком файлов JPG. Подстановочный знак * доставит их всех в текущий каталог в алфавитном порядке c. Разделитель null: важен для составных слоев. Установите желаемую плотность SVG, чтобы контролировать размер растеризованного файла SVG.

Вы можете добавить -geometry перед -compose atop, но он не работает в процентах. Вам нужно будет вычислить это как пиксели. Если вам нужно, чтобы каждое смещение изображения имело одинаковый процент, вам нужно будет использовать Imagemagick 7, чтобы вы могли выполнить

magick -density XX *.svg null: *.jpg -geometry "+%[fx:20*w/100]+%[fx:10*h/100]" -compose atop -layers composite result.pdf

К сожалению, Imagemagick 6 не поддерживает эту возможность.

...