嵌入链接的 SVG 图像

embed linked SVG images

我有一个 SVG 文件,它引用了许多其他较小的 SVG 作为子图像。实际上,主 SVG 是定位所有其他 SVG 的模板。

我想创建一个我可以传递给人们的单一图像 - 即 data ref 或只是内联包含 - 但是 运行 inkscape Embed Images 扩展结果错误 "images are not of type PNG, JPEG, etc".

所以听起来 inkscape (v0.48.5) 扩展只能实习位图图像,不能实习 SVG。无赖。

我的图片是这样引用主 SVG 的

<image id="PGDOWN_R1" x="1436.5"  y="280"  xlink:href="./symbols/PGDOWN_R3.svg"/>

那么我如何才能自动 intern/embed 我所有的外部引用 SVG? (也欢迎使用非 inkscape CLI 选项)

我最终使用 xmllint 将带有句柄的 SVG 文件解析为包含引用文件的嵌入式版本的文件,这不是我的意思,但它适合我的目的:https://gitlab.com/fommil/attic/blob/master/kinesis-dvorak/create.sh#L37

xmllint --xinclude picture.svg  > picture-embedded.svg

至少从 Inkscape 0.91 开始,您可以通过此菜单执行此操作:

ExtensionsImagesEmbed Images

很简单!