複数のレイヤーを持つ漫画があります。それらのレイヤーの中に、ドイツ語と英語のレイヤーがあります。彼らはそれぞれの言語でテキストを持っています。アイデアは、ドイツ語レイヤーを非表示にして英語レイヤーを表示し、英語の漫画としてエクスポートするか、英語レイヤーを非表示にしてドイツ語版の漫画のドイツ語レイヤーを表示することです。そのエクスポートをスクリプト化したいと思います。
これが私のSVGファイルの一部です:
<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>
<!-- ... -->
そして
<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>
<!-- ... -->
私は/programming/9652573/inkscape-command-line-programmingを見て、このコマンドを試しました(そしてそれにたくさんのバリエーションがあります):
inkscape -z --file=cartoon.svg --select=English --verb=LayerHideAll --select=German --verb=LayerShowAll --export-png=cartoon-de.png --export-area-drawing
しかし、ファイルを保存したときに英語のレイヤーが表示され、ドイツ語のレイヤーが表示されなかったためか、英語のテキストが表示され続けています。
また、IDでレイヤーを選択し(それぞれ上のレイヤー3とレイヤー4のコード内)、実際の<text>
要素を選択しました。Inkscape動詞のさまざまな組み合わせを試しました。しかし、運もありません。
このエクスポートをスクリプト化して、必要に応じて言語レイヤーを非表示または表示するにはどうすればよいですか?これをInkscape動詞で実行できますか、それともXMLを操作して、style属性をdisplay:inlineまたはdisplay:noneに設定してみますか?
display:...
不透明度のような他のスタイル属性がすでにある場合、スタイルを設定してこれを壊すことはできません。答えを更新しました。