有没有一种方法可以使用"rsvg-convert"将多页SVG或多个SVG文件转换为一个多页PDF?
我正在使用以下命令:
/usr/bin/rsvg-convert -f pdf -o out.pdf in.svg
有没有一种方法可以使用"rsvg-convert"将多页SVG或多个SVG文件转换为一个多页PDF?
我正在使用以下命令:
/usr/bin/rsvg-convert -f pdf -o out.pdf in.svg
在转换为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
rsvg-convert
可以完成将多个SVG转换成单个PDF的任务 参见@holger-will的回答。然而,它会将所有PDF页面的大小调整为第一个SVG文件的大小(无论第二个、第三个等是否更大)。这不适用于组合具有不同高度和宽度的各种SVG。svgstopdf
,可在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较小,则后续的SVG也不会被裁剪。rsvg-convert
,但请注意,此方法可以完成相同的任务。未来发现此问题的用户可能会对没有rsvg-convert
固有限制的替代方案感兴趣(截至2018年8月)。这在librsvg
的rsvg-convert.c
的244-245行非常清楚参见https://github.com/brion/librsvg/blob/master/rsvg-convert.c:/* 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 图像。rsvg-convert -f pdf -o out.pdf Blue_sphere.svg 111553_wifi.svg
,得到的 PDF 如下:显然,这不是期望的结果。相反,使用svgstopdf.exe Blue_sphere.svg wifi.svg out2.pdf
会得到以下结果: