9

我想知道是否有任何命令行工具可用于通过 SVG 中的转换来展平嵌套组?

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

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

4

4 回答 4

6

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

于 2016-02-07T08:23:11.377 回答
1

谢谢德拉普特,

同时我找到了这个:(PStill)。它在扁平化结构(PDF 到 PDF)方面做得非常好,但是生成的 SVG 中仍然有很多元素,这使得它对浏览器非常不可用。CAD 系统生成 PDF 的真正麻烦是:许多非常小的路径而不是一条较长的路径。我很确定还有优化的空间......总有一天:-)

于 2012-10-13T11:20:14.730 回答
1

您可能会尝试使用SVG Cleaner。不幸的是,它是一个 GUI 工具,因此它并不能真正满足您的要求,但它提供了一种可能变得有用的批处理理念。

于 2012-10-11T15:01:59.327 回答
0

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

于 2013-08-06T23:00:18.750 回答