5 votes

Comment ouvrir un nouveau fichier à partir de la ligne de commande avec Inkscape

Je n'arrive pas à trouver comment ouvrir un nouveau svg avec Inkscape, simplement depuis le terminal.

Si le document spécifié en argument (ou via -f ) n'existe pas, il y a juste une erreur disant qu'il n'existe pas, et ensuite il ouvre un nouveau document non sauvegardé.

J'ai essayé d'utiliser le verbe FileSaveAs comme ceci par exemple :

inkscape --verb FileSaveAs mynewfile.svg

mais FileSaveAs ne prend pas d'arguments, il ouvre simplement la fenêtre graphique pour cette action.

Je suis peut-être tatillon, mais je trouverais plus pratique de pouvoir créer un nouveau fichier directement depuis la ligne de commande au lieu de devoir lancer cette fenêtre et cliquer sur le bon répertoire...

4voto

Jacob Vlijm Points 78990

À ma grande surprise, il ne semble pas y avoir d'option dans Inkscape pour produire un nouveau fichier à partir de cli !

Comment créer l'option ?

Comme toujours, s'il n'existe pas, il peut être fabriqué :

  1. Ouvrir Inkscape créer un nouveau fichier drawing.svg

  2. Enregistrez ce fichier n'importe où

  3. Copiez le code ci-dessous dans un fichier vide, enregistrez-le en tant que newinkscape (sans extension) en ~/bin . Créez le répertoire s'il n'existe pas encore.

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

    Rendre le script exécutable

  4. Remplacer dans la ligne :

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

    Le chemin par le chemin de votre fichier d'échantillon.

Déconnecte-toi et reconnecte-toi, maintenant :

newinkscape /path/to/newfile.svg

ouvrira une nouvelle fenêtre vide Inkscape enregistré dans l'emplacement que vous avez utilisé dans la commande.

4voto

sdbbs Points 1198

Eh bien, je me suis posé la même question pendant des années (surtout depuis que touch mynewfile.svg; inkscape mynewfile.svg causes InkscapeApplication::document_open: Failed to open: /path/to/mynewfile.svg ; ConcreteInkscapeApplication::on_open: failed to create document! ) - et enfin, après avoir consulté https://wiki.inkscape.org/wiki/index.php/Using_the_Command_Line je l'ai trouvé :

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

Par exemple, pour tester sous 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>

0voto

Greg Smith Points 5397

Avec Inskcape 1.0 :

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

ou, si vous le souhaitez, vous pouvez utiliser un modèle pour le nouveau fichier :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X