【问题标题】:Using rsvg-convert can one convert multi page or multi file SVG to multi page PDF?使用 rsvg-convert 可以将多页或多文件 SVG 转换为多页 PDF 吗?
【发布时间】:2013-07-29 20:58:12
【问题描述】:

有没有办法使用“rsvg-convert”将多页 SVG 或多 SVG 文件转换为单个多页 PDF?

我正在使用命令:

 /usr/bin/rsvg-convert -f pdf -o out.pdf in.svg

【问题讨论】:

    标签: linux pdf svg pdf-generation


    【解决方案1】:

    您可以在转换为 pdf 时提供 .svg 文件的列表。

    rsvg-convert -f pdf -o out.pdf file1.svg file2.svg file3.svg
    

    或者,您可以将文件夹中的所有 .svg 文件转换为 1 个 pdf,如下所示:

    rsvg-convert -f pdf -o out.pdf *.svg
    

    【讨论】:

      【解决方案2】:

      rsvg-convert 完成多 SVG 到单 PDF 任务 see @holger-will's answer。但是,它会将所有 PDF 页面的大小调整为与第一个 SVG 文件相同的大小(无论第二个、第三个等是否更大)。这不适合组合具有不同高度和宽度的各种 SVG。

      另一种选择 -- svgstopdf -- 在基于 Debian 的系统上可用 https://github.com/pimpreneil/svgstopdf 并移植到 Windows https://github.com/flueterflam/svgstopdf

      语法也类似:

      svgstopdf file1.svg file2.svg (...) out.pdf
      

      svgstopdf *.svg out.pdf
      

      使用svgstopdf 的好处是每个PDF 页面的大小恰好是对应的SVG 图像的大小。您无需将所有 SVG 调整为统一的宽度或高度!如果第一个较小,后续的 SVG 也不会被剪裁。

      虽然 OP 要求 rsvg-convert,但请注意,此方法完成相同的任务。发现此问题的未来用户可能有兴趣了解不受 rsvg-convert 固有限制的替代方案(截至 2018 年 8 月)。这在rsvg-convert.clibrsvg see https://github.com/brion/librsvg/blob/master/rsvg-convert.c 的第244-245 行非常清楚:

      /* in the case of multi-page output, all subsequent SVGs are scaled to the first's size */
      rsvg_handle_set_size_callback (rsvg, rsvg_cairo_size_callback, &dimensions, NULL);
      

      虽然它在评论中说“缩放”,但我使用rsvg-convert 的测试表明后续 PDF 页面的大小与第一个相同。此外,后续的 SVG没有调整大小以适应 PDF 页面,而是被剪裁了。所以“缩放”过程是指 PDF 页面而不是 SVG 图像。

      这方面的一个例子是采用两个 SVG 文件: 128px x 128 px - https://en.wikipedia.org/wiki/File:Blue_sphere.svg 288px x 288px - https://www.shareicon.net/download/2015/10/03/111553_wifi.svg

      使用rsvg-convert -f pdf -o out.pdf Blue_sphere.svg 111553_wifi.svg,生成的 PDF 如下所示:

      (第 1 页)

      (第 2 页)

      显然,这不是预期的结果。相反,使用 svgstopdf.exe Blue_sphere.svg wifi.svg out2.pdf 会导致:

      (第 1 页)

      (第 2 页)

      【讨论】:

        猜你喜欢
        • 2011-06-10
        • 2015-09-12
        • 2019-07-12
        • 1970-01-01
        • 1970-01-01
        • 2013-06-06
        • 2012-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多