如何使用 Inkscape 从命令行打开新文件

如何使用 Inkscape 从命令行打开新文件

我找不到如何打开新的使用 Inkscape 编辑 .svg 文档,只需从终端即可。

如果作为参数(或通过)指定的文档-f不存在,则会出现一个错误提示它不存在,然后它会打开一个未保存的新文档。

我尝试使用这样的动词,FileSaveAs例如:

inkscape --verb FileSaveAs mynewfile.svg

但是 FileSaveAs 不接受参数,它只是为此操作打开图形窗口。

我可能有点挑剔,但我发现直接从命令行创建新文件更方便,而不必启动此窗口并单击正确的目录......

答案1

令我惊讶的是,Inkscape 中似乎没有从 cli 生成新文件的选项!

如何创建选项?

与往常一样,如果不存在,可以这样做:

  1. 打开Inkscape,创建一个新文件drawing.svg
  2. 将此文件保存在任何位置
  3. 将以下代码复制到一个空文件中,将其另存为newinkscape(无扩展名)~/bin。如果目录尚不存在,请创建该目录。

    #!/bin/bash
    
    sample="/path/to/drawing.svg"
    dr=$1
    
    cp "$sample" "$dr"
    inkscape "$dr"
    

    使脚本可执行

  4. 替换该行:

    sample="/path/to/drawing.svg"
    

    该路径为示例文件的路径。

现在注销并重新登录:

newinkscape /path/to/newfile.svg

将打开一个新的空Inkscape文件,保存在您在命令中使用的位置。

答案2

好吧,多年来我一直在思考这个问题(特别是因为touch mynewfile.svg; inkscape mynewfile.svg原因InkscapeApplication::document_open: Failed to open: /path/to/mynewfile.svg ; ConcreteInkscapeApplication::on_open: failed to create document!)——最后,在咨询https://wiki.inkscape.org/wiki/index.php/Using_the_Command_Line, 我找到了:

inkscape --without-gui --actions="file-new; export-area-page; export-filename:test.svg; export-do;"

例如在 Ubuntu 18.04 下测试:

$ inkscape --version
Inkscape 1.0.1 (1.0.1+r73)
    Pango version: 1.40.14

$ ls -la test.svg
ls: cannot access 'test.svg': No such file or directory

$ inkscape --without-gui --actions="file-new; export-area-page; export-filename:test.svg; export-do;" 2>/dev/null && ls -la test.svg
-rw-r--r-- 1 user user 1134 Sep 15 05:53 test.svg

$ cat test.svg 
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.1"
   id="svg10"
   width="100%"
   height="100%"
   viewBox="-1 -1 1 1">
  <metadata
     id="metadata16">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs
     id="defs14" />
  <sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="640"
     inkscape:window-height="480"
     id="namedview12" />
</svg>

答案3

使用 Inskcape 1.0:

inkscape --actions="file-new;export-filename:output.svg;export-do"

或者,如果您愿意,您可以为新文件使用模板:

inkscape --actions="file-new:template.svg;export-filename:output.svg;export-do"

相关内容