最近遇到了某软件只能导出SVG格式的矢量图的情况,但是SVG格式的图片无法直接导入PPT中,所以需要格式转换。

方法一:在线转换

常见的在线转换网站,如cloudconvert

Android svg转换xml报错 svg文件转换_Android svg转换xml报错


优点:便捷、部分免费

缺点:每天免费转换次数有上限、适用于待转换文件较少的情况

方法二:软件转换

在这篇文章里,博主推荐了五种SVG转EMF的软件,我尝试了其中两种,即inkscape和xnconvert,就我自己的使用体验来说还是推荐软件inkscape,xnconvert虽然操作界面很简单,但是导出的emf是有损的(我也不太清楚原因),但是inkscape导出的EMF就不会,同时支持命令行批量操作,也是免费的,比较符合我的需求。

1. 直接软件操作
打开inkscape,将svg文件放进去,然后另存为emf格式的文件即可。

2. 直接命令行操作

网上有很多关于利用inkscape进行svg转emf的命令,但是有一些已经不太适用于当前的版本,在这个论坛回答中,我找到了比较新的一条回答:

Android svg转换xml报错 svg文件转换_命令行_02

如果inkscape的.exe的所在文件夹已经被添加至系统环境变量(可以在安装的时候就选择添加,也可以安装后手动添加),举个例子,假设我需要将example.svg转为example.emf,则有

inkscape "D:\example.svg" --export-filename "D:\example.emf"

(注意双引号)根据个人需要,这里.svg和.emf文件的存放路径可以不一致,转换前后的名字也可以不一致。

3.利用命令行批量处理
如果需要处理的文件比较多,也可以用inkscape在命令行中进行批量处理,这里可以结合自己比较习惯的方式,可以用matlab, python,或者直接写个脚本在命令行里面运行。需要注意的是,有时候即便inkscape已经被添加进了环境变量中,但是在批量操作的时候还是无法直接调用,这个时候只需要将上面的"inkscape"改为inkscape的完整路径即可,如“D:\install\Inkscape\bin\inkscape"