0

我正在设计一款纸牌游戏。我在 Inkscape 中制作了卡片模板,然后编写了一个 Python 脚本来复制模板并为每张卡片制作一个新的 SVG 文件,从 CSV 文件中填写标题等。

我想对生成的 SVG 做的是将它们放在单个页面上的 3x3 网格中,这样我就可以在普通纸上打印它们。我还希望它们具有特定的大小(在原始 Inkscape SVG 中指定)。请注意,我有不止一页的卡片。

我认为通常我可以将它们放在包装器 SVG 中并将其转换为 PDF,但 Inkscape 将id属性放在所有元素上,我预计这会导致问题。

如何将这些 SVG 放在 3x3 网格中的页面上?

4

1 回答 1

1

设法找到了解决方案,尽管还有改进的余地。

首先,我使用 Inkscape 在批处理模式下将所有 SVG 转换为 PDF。为此,我创建了一个这样的文件:

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它们,它们就太大了。如果有人可以给出另一个答案,允许我以单位而不是百分比指定卡片的宽度,我会投赞成票。

于 2019-08-06T16:42:09.737 回答