【问题标题】:How can you embed multiple SVG images in a print layout using a scripted procedure?如何使用脚本程序在打印布局中嵌入多个 SVG 图像?
【发布时间】:2013-01-09 03:48:07
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ruby svg


    【解决方案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 表面结合使用。不过,文档似乎稀少或分散。

    【讨论】:

    • 感谢您的帮助!我最终使用了 Batik,因为其他 SVG 渲染器都没有正确实现我的 CSS 属性选择器。蜡染正是我所需要的。
    【解决方案2】:

    如果您有预算,Prince 就是您想要的。由于您已经尝试使用 CSS+HTML 来使其正常工作,因此您可能已经准备好一个可行的解决方案。只需生成 HTML、SVG 和 CSS(使用 CSS3 paged media extensions 以获得最佳控制),然后将其传递给 Prince 以生成 PDF。我已经在几个项目中使用了它,效果很好。

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

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

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

    【讨论】:

    • 感谢您的建议。王子看起来很漂亮,但不幸的是我没有太多预算。 wkhtmltopdf 可能有效,但在第一次尝试时,它没有正确呈现我的布局。我认为 HTML 布局并不适合这项工作。
    猜你喜欢
    • 2020-06-09
    • 2015-11-20
    • 1970-01-01
    • 2013-09-03
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2016-09-04
    相关资源
    最近更新 更多