.aiファイルをInkscapeで開くときの覚書。

Inkscapeで.aiファイルを開こうとしたら、開けるファイルとだめなファイルがあったので検索しました。

Inkscape edits to an SVG file, which was originally created in Adobe Illustrator, are lost when importing back into AI

That's because Adobe cheats. It creates a valid SVG, but apart from the SVG code it also writes to the file, in encoded binary form, the entire AI-format source file of the image. Inkscape, of course, edits the SVG part of the image and leaves the encoded binary untouched. But when you import the SVG file back to AI, it completely disregards the SVG code with its edits and reads directly from the encoded AI binary. Therefore, any SVG changes are lost. To work around it, in Inkscape open the XML Editor and remove the non-SVG elements (everything not with the svg: prefix in its name, usually towards the end of the tree). If you need to do this job repeatedly you may consider using some XSLT-based automation. Alternatively, when exporting SVG from Illustrator, uncheck the options "Preserve Adobe Illustrator Editing" and "Optimize for Adobe SVG viewer". If you're using an Inkscape version higher than 0.92.3, Inkscape automatically removes the extra data from Adobe upon saving as SVG.

これを翻訳したものが以下です。

Adobe Illustratorで作ったSVGファイルをInkscapeで編集して、それをAIでインポートしたら編集結果が失われた

これはアドビのチートです。AIは有効なSVGファイルを作成するけれど、SVGコード以外の部分にもエンコードされたバイナリの形でAI形式のデータを書き込んでいます。Inkscapeは当然ながらSVGの部分を編集しますが、エンコードされたバイナリ部分には手を触れません。ところがそのSVGファイルをAIにインポートするとき、編集されたSVGコードの部分は完全に無視されてエンコードされたAI形式のバイナリを読み込みます。そのためSVGに加えられた変更は失われます。これを回避するには、InkscapeでXMLエディタを開き、非SVGエレメント部分を削除します(svg:プレフィクスで始まっていないツリーをすべて)。この作業を繰り返す必要がある場合には、XSLTベースの自動化を検討することもあるでしょう。もしもInkscpaeの0.92.3よりも上のバージョンを使っているなら、InkscapeはAdobeのデータをSVG保存時に自動的に削除します。

だそうです。
0.92.3は安定版としてダウンロードできますが、AppVeyorで自動的にビルドされているWindowsバイナリをインストールすれば、SVG保存時に自動的に削除されるようです。

AppVeyorビルドをダウンロードするには、
  1. AppveyorにあるInkscapeのWindowsビルドのリストを参照します。
  2. リストの中で、以下の条件を満たす最新のエントリーを探します:
    • 左型に緑の線があるもの(ビルドが成功したもの)
    • 右側にある名称が 0.92.x-1234 になっているもの(個人的ブランチやマスターではなく、0.92.xブランチ)
  3. その説明部分をクリックします。

  4. "Environment: MSYSTEM=MINGW64" をクリックします。

  5. ダークカラーのターミナルボックスの上の右側にある "Artifacts" をクリックします。

  6. 7zip ファイルをダウンロードします。

  7. 7zアーカイブを展開できるプログラムで展開します。(7zipなど)

  8. Inkscapeフォルダにある inkscape.com をダブルクリックしてInkscapeを起動します。

だそうです。 ちなみに現時点での最新0.92.xは 0.92.x-2328 のようです。ダウンロードしたら inkscape-0.92.3_2018-11-25_5aff6ba-x64.7z というファイル名でした。

ただ、そもそも開けないのはなんでなのかはわかりませんでした。AIのバージョン?

0 件のコメント:

コメントを投稿

Windowsでシンボリックリンクを試してみる。

きっかけは、1つのファイルを別の名前で起動したら違う動きになるようなスクリプトを書く、でした。  busybox なんかでは、同じ実行形式ファイルの名前を、lsにすればlsと同じ、cpとすればcpと同じ動作をするようにしてますが、Pythonスクリプトでそれと同じように argv...