Ich habe einen Cartoon mit mehreren Schichten; Unter diesen Schichten habe ich eine deutsche und eine englische Schicht. Sie haben den Text in ihrer jeweiligen Sprache. Die Idee ist, die deutsche Ebene auszublenden und die englische Ebene anzuzeigen und als englischen Cartoon zu exportieren oder die englische Ebene auszublenden und die deutsche Ebene für eine deutsche Version des Cartoons anzuzeigen. Ich möchte diesen Export per Skript ausführen.
Hier ist ein Teil meiner SVG-Datei:
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="English"
style="display:inline">
<text
xml:space="preserve"
<!-- .... -->
id="text3255">
<tspan id="tspan3257">I don't think</tspan>
<!-- ... -->
und
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="German"
style="display:none">
<text
xml:space="preserve"
<!-- ... -->
id="text3284">
<tspan id="tspan3286">Ich glaube nicht,</tspan>
<!-- ... -->
Ich habe /programming/9652573/inkscape-command-line-programming gesehen und diesen Befehl (und viele Variationen davon) ausprobiert:
inkscape -z --file=cartoon.svg --select=English --verb=LayerHideAll --select=German --verb=LayerShowAll --export-png=cartoon-de.png --export-area-drawing
Aber ich bekomme immer wieder den englischen Text, wahrscheinlich weil beim Speichern der Datei die englische Ebene sichtbar war und die deutsche Ebene nicht.
Ich habe auch versucht, die Ebenen anhand ihrer IDs auszuwählen (im Code über Ebene 3 bzw. Ebene 4) und die tatsächlichen <text>
Elemente auszuwählen . Ich habe verschiedene Kombinationen von Inkscape-Verben ausprobiert. Aber auch kein Glück.
Wie kann ich diesen Export per Skript ausführen, die Sprachebene nach Bedarf ausblenden oder anzeigen? Kann ich dies mit Inkscape-Verben tun oder sollte ich mit XML arbeiten und versuchen, das Stilattribut auf display: inline oder display: none festzulegen?
display:...
dass dies nicht funktioniert, wenn Sie bereits andere Stilattribute wie die Deckkraft haben. Ich habe die Antwort aktualisiert.