用于展平SVG嵌套转换的工具

时间:2012-10-11 10:45:58

标签: svg nested transformation flatten

我想知道是否有任何命令行工具可以在SVG中使用转换来展平嵌套组?

在我的特定情况下,我正在将CAD软件生成的PDF转换为SVG,然后添加一些元素并将修改后的SVG发布到网页以供查看。 SVG的响应时间非常缓慢(用于平移和缩放),我发现这是由于SVG内部有大量嵌套组,通常高达几百个深度。对于SVG中的每个元素,浏览器需要计算其所有父节点的位置......

显然这很荒谬,因为所有这些元素都需要一个单一的转换(矩阵)。所以我想知道是否有人知道一个工具来压扁这个(或者C#或Delphi实现会这样做......)。

4 个答案:

答案 0 :(得分:6)

我发现的最好的是svgo https://github.com/svg/svgo但它仍然不能令人满意。 SVGO的目标是生成一个较小的svg文件。这意味着如果转换允许更小的svg文件,则保留它。我的目的与OP类似,但略有不同。我正在寻找可以展平的东西,并将SVG完全简化为基本路径&元件。

答案 1 :(得分:1)

感谢Delapouite,

同时我发现了这一个:(PStill)。它完美地平整了结构(PDF到PDF),但是生成的SVG仍然有很多元素使它无法用于浏览器。这实际上是CAD系统对PDF产生的麻烦:许多非常小的路径而不是一条较长的路径。我很确定仍有优化空间...有一天: - )

答案 2 :(得分:0)

您可以使用SVG Cleaner。遗憾的是它是一个GUI工具,因此它并不真正适合您的要求,但它提供了一种可以变得有用的批处理理念。

答案 3 :(得分:0)

可以选择在Inkscape图形编辑器中展平变换 因此,您可以使用Inkscape终端命令来实现它,但您必须查看是否存在这样的命令。