• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Illustrator CSでpng書き出し)

Illustrator CSでpng書き出し

このQ&Aのポイント
  • Illustrator CSで高解像度のpngファイルを自動的に書き出す方法と要件について教えてください
  • IllustratorのCSバージョンを使用してJavaScriptで複数のepsファイルをpngに書き出す方法について教えてください
  • 600dpiのグレースケールのpngファイルを作成する際に、画面上のガイドを消去し、特定の文字列を置換する方法について教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • kawacchi
  • ベストアンサー率83% (26/31)
回答No.1

スクリプトかアクションのどちらかでしか不可能な処理がありますね。 ですので、2回実行する必要がありますが、スクリプトとバッチの両方を使う方法が良いのではないでしょうか。 大まかな順序は以下の通りです。(epsファイルのバックアップを忘れずに) 1.スクリプト…文字の修正をして上書き保存 2.バッチ…ガイドを消去、フィルタでグレスケに変更、600dpiのpngで書き出し スクリプトはこちら。(WinXP、CS2で動作確認) //文字置き換え、フォント変更 var tFrames = activeDocument.textFrames; var tContents, tIndex, tFontArr, i, j; for (i = tFrames.length - 1; i >= 0; i--) { tContents = tFrames[i].contents; tIndex = tContents.indexOf('Impedance ()'); if (tIndex == -1) continue; tFontArr = []; for (j = tContents.length - 1; j >= 0; j--) { tFontArr[j] = tFrames[i].characters[j].characterAttributes.textFont; } while (tIndex != -1) { tContents = tContents.replace('Impedance ()', 'Impedance (Ω)'); tFontArr.splice(tIndex+11, 0, app.textFonts['SymbolMT']); tIndex = tContents.indexOf('Impedance ()'); } tFrames[i].contents = tContents; for (j = tContents.length - 1; j >= 0; j--) { tFrames[i].characters[j].characterAttributes.textFont = tFontArr[j]; } } //ガイドを消去 var pItems = activeDocument.pathItems; for (var i = pItems.length - 1; i >= 0; i--) { if (pItems[i].guides) pItems[i].remove(); } 文字列編集は、編集前のテキストにおいてフォントが複数混ざっている場合を想定しています。フォント以外(サイズ等)も色々と設定されている場合は修正が必要です。 ガイドを消去は、ドキュメント内のパスを全て走査するので、パスの総数が多い場合はバッチで処理した方が速いと思われます。

Prome_Lin
質問者

お礼

お礼が遅れて、申し訳ございませんでした。 ありがとうございます。 やはり、JavaScriptだけで何もかも出来るわけではないのですね。 いろいろ調べていたら、JavaScriptなら、 複雑な処理も出来そうに書かれているサイトがいくつかあったので 期待して、調べ続けたのですが、 どうしても分からず、困っていました。 すみません。 大変助かりました。 また、プログラムも大変参考になりました。

関連するQ&A