Inkscapeでエクステンションを自作する方法を試してみました。
このエクステンションでは、ドキュメント中のテキストオブジェクト(<tspan>要素)を探し出して、その中の文字列の一部を別の文字列に置き換えます。置き換え対象の文字列をPythonコード内に直接記述していますが、Pythonの正規表現操作モジュール「re」を使っているので、いろんな文字列パターンにマッチした部分を別の文字列に置き換えるように拡張することも簡単にできると思います。
Inkscapeでエクステンションを自作する方法を試してみました。
このエクステンションでは、ドキュメント中のテキストオブジェクト(<tspan>要素)を探し出して、その中の文字列の一部を別の文字列に置き換えます。置き換え対象の文字列をPythonコード内に直接記述していますが、Pythonの正規表現操作モジュール「re」を使っているので、いろんな文字列パターンにマッチした部分を別の文字列に置き換えるように拡張することも簡単にできると思います。
Inkscapeでエクステンションを自作する方法を試してみました。
このエクステンションでは、ダイアログを表示して、そこで好きな属性名と属性値が指定されると、選択状態のオブジェクトに対してその属性を追加します。さらにオプションとして「追加」ではなく「削除」をダイアログ上で選択して実行すると、その属性名の属性を削除します。
Inkscapeでエクステンションを自作する方法を試してみました。
ここでは、その時点で編集中のレイヤ上の要素(オブジェクトやオブジェクトグループ)を網羅的に探索して(スキャンして)、そのIDとオブジェクトクラスを出力するエクステンションを作ってみました。これを拡張すれば、レイヤ上のすべてのオブジェクトに好きな処理を加えることができると思います。
このページでは、InkscapeのエクステンションをPythonで書くときに使うライブラリ(inkexパッケージ)のAPIリファレンスの中から重要だと思うモジュールのページのリンク集を作っていきたいと思います。
Inkscapeでエクステンションを自作する方法を試してみました。
ここでは位置や幅を指定するときの単位(mmやpx)を指定してオブジェクトを描くサンプルを作ってみました。エクステンションのPythonプログラムの中で単位を指定するための専用の変数や関数は存在しないようで、数字と単位の表記文字を使って指定することになるようです。
Inkscapeでエクステンションを自作する方法を試してみました。
ここでは「選択したオブジェクトのフィルを緑色(固定)に変更する」というシンプルな自作エクステンションを少しいじって、ダイアログ上で「#FF0000」のようなRGB値を設定するとフィルをその色に変更してくれるエクステンションを作ってみました。
Inkscapeでエクステンションを自作する方法を試してみました。
ここでは、Pythonプログラムを実行する直前に、そのPythonプログラムにパラメータを設定するためのダイアログを表示させるという機能を使ってみました。
Inkscapeでエクステンションを自作する方法を試してみました。
ここではエクステンションの実行ログを出力するコードを書いてみました。いろんな方法があると思いますが、シンプルにprint関数を使ってみました。print関数で出力先として「stderr」を指定すると、そこに出力した文字列をInkscapeがダイアログに表示してくれます。
Inkscapeでエクステンションを自作する方法を試してみました。
とにかく動かしてみて、エクステンションを自作する流れを理解したいので、選択したオブジェクトのフィルを全部緑色に変更してしまうシンプルなエクステンションを作ってみました。
このページでは、Inkscapeのエクステンションの1つで、一般にストロークフォントと呼ばれる細いペンで手書きしたようなフォントを使った文字を描いてくれるエクステンション「Hersheyテキスト」を紹介します。
このページではInkscapeの「メッシュグラデーション」というエクステンションについて紹介します。
このエクステンションはSVG形式でサポートされているグラデーションの1種であるメッシュグラデーション(Inkscapeでももちろん編集可能)の操作を簡略化してくれるものですが、大きく2種類に分かれています。
1つ目は、パスをメッシュグラデーションへです。これは選択したパス(複数可)に対して1行1列のメッシュグラデーションを設定するエクステンションです。
2つ目は、メッシュグラデーションをパスへです。これはすでにオブジェクトに設定されているメッシュグラデーションのグラデーションパスから同じ形の通常のパスオブジェクトを生成するエクステンションです。