自动将 Inkscape

自动将 Inkscape

Inkscape 0.92 询问用户是否应转换旧文件以匹配新决议

弹出选择

我以毫米为单位对齐所有旧照片。如何使用脚本转换所有旧文件?是否有 inkscape 参数可以用于命令行,例如

find -name "*.svg" | xargs inkscape ...

答案1

您也许可以通过查看文件来从命令行转换文件

/usr/share/inkscape/extensions/dpiswitcher.py

(或您的安装的类似位置)。这似乎是执行转换的代码,并且似乎可以在 inkscape 之外运行。我给它一个 svg 文件的名称作为参数,它在 stdout 上写了一个具有以下差异的版本:

$ dpiswitcher.py /tmp/drawing.svg  >/tmp/new.svg
$ xmltidy  /tmp/new.svg 
$ xmltidy  /tmp/drawing.svg 
$ diff /tmp/drawing.svg  /tmp/new.svg

< <svg ... width="210mm" height="297mm" viewBox="0 0 744.09448819 1052.3622047" id="svg3336" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="drawing.svg">
---
> <svg ... width="793.700787417" height="1122.51968506" viewBox="0.0 0.0 793.700787403 1122.51968501" id="svg3336" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="drawing.svg">
17c17
<   <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
---
>   <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1.066667,0.000000,0.000000,1.066667,0.000000,0.000000)">

这是内置帮助:

$ dpiswitcher.py --help
Usage: dpiswitcher.py [options] SVGfile
Options:
  --id=IDS              id attribute of object to manipulate
  --selected-nodes=SELECTED_NODES
            id:subpath:position of selected nodes, if any
  --switcher=SWITCHER   Select the DPI switch you want
  --action=ACTION       

您可以默认切换器和操作,但您可能需要提供 id 和节点列表。也许如果您使用 gui 转换一些文件,那么使用此 python 脚本您可以查看是否存在差异,从而逐步找到解决方案。

相关内容