11

我在 cli no ( --without-guior -z) 中使用 Inkscape 来:

  1. 通过 id ( hanzi, pinyin) 选择多个节点;
  2. 建立他们的联盟;
  3. 另存为新文件 ( test-union-cli.svg)。

命令

所以我使用这个命令:

inkscape -z -f ./䖠-x45A0.svg \
    --select=hanzi --select=pinyin \
    --verb SelectionUnion --verb FileSaveCopyAs \
    --verb=FileClose test-union-cli.svg

输出错误

** (inkscape:27462): CRITICAL * : Inkscape::XML::Document sp_repr_read_file(const gchar*, const gchar*): 断言 `Inkscape::IO::file_test( filename, G_FILE_TEST_EXISTS )' 失败

** (inkscape:27462): CRITICAL * : Inkscape::XML::Document sp_repr_read_file(const gchar*, const gchar*): 断言 `Inkscape::IO::file_test( filename, G_FILE_TEST_EXISTS )' 失败

** (inkscape:27462): 警告 **: 指定的文档 test-union-cli.svg 无法打开(不存在或不是有效的 SVG 文件)

该文件test-union-cli.svg不应该存在。那么我在这里做错了什么?

4

1 回答 1

11

tl;博士

  1. 您不能保存到与打开的文件不同的文件中。所以编辑一个副本;
  2. 动词需要 GUI,不要使用-zor --without-gui

动词不带参数

继续询问,#inkscape发现当前 ( Inkscape 0.48.3.1 r9886 (Jan 29 2013)) 不支持动词的参数:

动词不带参数 -> 您不能以不同的名称保存使用“-f”打开的文件首先复制文件(例如在脚本中),然后编辑并保存复制的文件

在这个主题上确认了一个错误(请参阅:错误:提供保存文件的脚本方法)。

动词暗示 GUI

当前(稳定的)动词总是需要打开 GUI(即使不需要交互)

确认错误允许在使用 --verb 选项时抑制 GUI (-z)并添加到 whishlist。

临时解决方案

较新版本的 Inkscape 可能会解决此“问题”,目前您可以通过以下方式解决

cp 䖠-x45A0.svg test-union-cli.svg && inkscape -g -f ./test-union-cli.svg \
    --select=hanzi --select=pinyin --verb=SelectionUnion \
    --verb=FileSave --verb=FileClose

希望 (v.049)

改进正在进行中lp:~7-eric/inkscape/effectscript

在此处阅读修订版 12388 的提交日志 https://code.launchpad.net/~7-eric/inkscape/effectscript - 最近已合并到主干中,AFAIU 允许在没有 GUI 的情况下通过 cli 运行 boolops 动词 -> 可能是下一个inkscape (0.49) 的主要版本将有更好的 cli 支持

于 2013-09-05T08:06:07.133 回答