Как разместить несколько SVG на одной странице определенного размера?
Я разрабатываю карточную игру. Я сделал шаблон карты в Inkscape, а затем написал скрипт на Python, чтобы скопировать шаблон и создать новый файл SVG для каждой карты, заполнив заголовок и так далее из файла CSV.
Что я хотел бы сделать с полученными SVG, так это поместить их в сетку 3х3 на одной странице, чтобы я мог распечатать их на обычной бумаге. Я также хотел бы, чтобы они были определенного размера (указан в оригинальном Inkscape SVG). Обратите внимание, что у меня есть карты на несколько страниц.
Я думаю, что обычно я мог бы просто положить их в обертку SVG и преобразовать это в PDF, но Inkscape помещает id
атрибуты на всех элементах, которые, как я ожидаю, вызовут проблемы.
Как я могу поместить эти SVG на страницу в сетке 3x3?
1 ответ
Удалось найти решение, хотя есть возможности для улучшения.
Сначала я конвертирую все SVG-файлы в PDF-файлы, используя Inkscape в пакетном режиме. Для этого я создаю такой файл:
for ii in cards/*.svg; do
echo "$ii --export-pdf=$ii.pdf" >> inkscape-commands
done
cd cards
DISPLAY= inkscape --shell < ../inkscape-commands
Тогда я использую pdfnup
команда от texlive-core
Пакет (в любом случае на моем дистрибутиве), чтобы сделать макет страницы:
pdfnup --nup 3x3 --paper a4paper --scale 0.90 --no-landscape *pdf
Это работает, но есть одна вещь, которую я не понимаю, и желание было лучше. Исходные файлы SVG должны быть точно подходящего размера для карт, но если я использую --scale 1.0
тогда они слишком большие. Если кто-то может дать другой ответ, который позволит мне указать ширину карточек в единицах, а не в процентах, я проголосую за это.