JSでも、VBでもPHPでも何でもOKなんですが。
C#をプロパティーやメソッドを動的に読み込むのがいちいち定義しなきゃいけないので、
あまり好きではありません。
Type Illustrator; object IllApp; object IllVarsion; private void button1_Click(object sender, EventArgs e) { Illustrator = Type.GetTypeFromProgID("Illustrator.Application"); IllApp = Activator.CreateInstance(Illustrator); IllVersion = IllApp.GetType().InvokeMember("version", BindingFlags.GetProperty, null, IllApp, null); MessageBox.Show(IllVersion.ToString()); IllApp.GetType().InvokeMember("quit", BindingFlags.InvokeMethod , null, IllApp, new object[] { }); }
2 Responses to “C#でIllustratorを操作する。”
この書き方は間違っている
アドビの公式のフォーラムに正しい書き方載っている
https://forums.adobe.com/thread/320504?tstart=0
匿名さん
コメントありがとうございます。
Illustrator.Application illuApp = new Illustrator.Application();
Illustrator.Document illuDoc = illuApp.Open(pathToFile, Illustrator.AiDocumentColorSpace.aiDocumentRGBColor, null);
上記のように定義されていますね。
ただ。この書き方をする場合、コンパイルするプログラム自体にイラレのライブラリを組み込んで置く必要があったと思います。
この場合、イラレの入っていない環境でプログラム自体が落ちてしまったらり、合わないバージョンの場合に、うまく機能しない可能性があります。
そのため、動的にライブラリを読み込んで処理する方法で記載しました。
読み込むバージョンは「Illustrator.Application」の部分にバージョン番号をつけることで指定することも可能です。
一応「Illustrator.Application」この記載で最新版となっているようですが。最後にインすロールされたバージョンとなります。
※これも環境によってことなるようです。
レジストリ上で各環境での名称をご確認ください。
そして、その詳細を書かないおれ。。。。。
文章に足りない部分がたたありますがf^^; 許して下さい。