如何使用脚本程序在打印布局中嵌入多个SVG图像?

时间:2013-01-09 03:48:07

标签: ruby svg

我目前有一个脚本可以生成大量3.5平方英寸的SVG图像。我需要的是能够将这些SVG放在一个可以轻松准确打印的布局中。

我尝试过使用HTML模板,但HTML / CSS没有足够强大的打印支持。

哪种文档布局语言最适合处理SVG图像,以及如何以脚本语言实现?

我使用Ruby来生成我的SVG,虽然更好,但不要求Ruby也是用于生成打印布局的语言。

2 个答案:

答案 0 :(得分:1)

我建议将所有SVG编译为更大的SVG,将所有内容放在您想要的位置,并使用多个选项之一将其转换为PDF:

  • 在命令行中使用Inkscape,例如
    inkscape -f in.svg -A out.pdf
  • 使用Batik
    java -jar batik-rasterizer.jar -m application/pdf -d out.pdf in.svg
  • 使用librsvg,例如
    rsvg-convert -f pdf -o out.pdf in.svg
    (可能是最轻量级的选项)

您也可以将rsvg2 Ruby gem与Cairo PDF表面一起使用。但是,文档似乎很少或分散。

答案 1 :(得分:0)

如果您有预算,Prince就是您想要的。既然您已经尝试使用CSS + HTML来实现它,那么您可能已经准备好了一个可行的解决方案。只需生成HTML,SVG和CSS(使用CSS3 paged media extensions进行最佳控制),然后将其传递给Prince以生成PDF。我已将它用于多个项目,并且效果很好。

有免费的选项可以像Prince一样工作,尤其是wkhtmltopdf,但他们可能不会像普林斯那样尊重您的分页选项。

否则,您可以使用Cairo一起破解某些内容,方法是创建页面大小的SVG图像并进行布局,添加指向多个外部SVG文件的链接。

这些选项中的任何一个都将最终生成PDF,这是确保无论使用哪个浏览器或操作系统都能打印相同的唯一方法。