Как открыть новый файл из командной строки с Inkscape

Я не могу найти, как открыть новый svg документ с Inkscape, просто от терминала.

Если документ, указанный как аргумент (или через -f) не существует, существует только ошибка при высказывании, что она не существует, и затем она открывает несохраненный новый документ.

Я пытался использовать глагол FileSaveAs как это, например:

inkscape --verb FileSaveAs mynewfile.svg

но FileSaveAs не берет аргументы, он просто открывает графическое окно для этого действия.

Я мог бы быть дотошным, но я найду более удобным смочь создать новый файл непосредственно из командной строки вместо того, чтобы иметь необходимость запустить это окно и щелчок к правильному каталогу...

4
задан 14 December 2016 в 13:45

2 ответа

К моему удивлению, кажется, нет никакой опции в 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 файл, сохраненный в месте, которое Вы использовали в команде.

4
ответ дан 1 December 2019 в 09:45

Ну, я много лет думал об этом же (особенно с тех пор, как touch mynewfile.svg; inkscape mynewfile.svg вызывает InkscapeApplication::document_open: Не удалось открыть: /path/to/mynewfile.svg ; ConcreteInkscapeApplication::on_open: не удалось создать документ! ) - и, наконец, после консультации 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>
4
ответ дан 15 September 2020 в 03:56

Другие вопросы по тегам:

Похожие вопросы: