スクリプト解説 > その他にちょっと便利

 

10/cs/cs2 レイヤー自動作成

対応バージョン:10/cs/cs2
2006年05月24日 debug (CSでの配置テキスト文字化けに対応-英文にしました)
レイヤー名の一覧テキストから、レイヤーを自動作成します。
ときどき、50とか100とか、とんでもない数のレイヤーを一つの書類上に作ってやらなければいけないことがあります。生きていると一度はそういうことがあります。そんなときに使っていただければきっとお役にたつスクリプトです。
名前の一覧を打ち込んだテキストオブジェクトの内容をそのままレイヤー名にして、新規レイヤーを作成します。また、レイヤー名に通し番号をつけて作成することもできます。
使い方:

[レイヤー名を指定して作成する場合]
新規テキストオブジェクトに、作りたいレイヤーの名前を改行による一覧にして打ち込んでください。この名前の順番がそのままレイヤーの重なり順になります。このテキストを選択した状態で、メニューから「レイヤー自動作成」を選んで実行してください。

[レイヤー名に通し番号をつけて作成する場合]
なにも選択していない状態でまずメニューから「レイヤー自動作成」を選んで実行してください。「まずレイヤー名を書い たテキストを作り、それを選択してからスクリプトを実行してください。レイヤーを通し番号で作成しますか?」というメッセージが出ます。「はい」をクリッ クすると、設定用のテキストが表示されます。
このテキストを選択した状態で、もう一度「レイヤー自動作成」を選んで実行すると、レイヤーが作成されます。

どちらの場合も、作成するときに「新しく作るレイヤーを、現在選択されているレイヤーのサブレイヤーにしますか?」というメッセージが出ます。「はい」を クリックすると、作成されるレイヤーは選択されたレイヤーのサブレイヤーになります。「いいえ」をクリックすると、そのまま書類の最上部に新規レイヤーが 作られます。

また、レイヤー名指定の場合は、さらに一階層分だけ、サブレイヤーの指定ができます。指定用テキスト上で、レイヤー名の先頭に「-」(半角英数文字のハイフン)を付けておくと、それがひとつ上のレイヤーのサブレイヤーとして作成されます(下図参照)。


CSでは、レイヤー名に日本語を指定すると文字化けしてしまうようです。すみません、これは仕様だと思ってあきらめてください…
 

10/cs/cs2 レイヤー自動リネーム

対応バージョン:10/cs/cs2
2006年05月24日 debug (CSでの配置テキスト文字化けに対応-英文にしました)
すでにたくさん出来てしまったレイヤーの名前をひとつずつ変更してやるのは、けっこう面倒な作業です。そんなときにこれを使ってみてください。現在のレイヤー名の一覧をテキストにして表示しますので、それを書き換えてもう一度実行すると、名前を自動的に変更します。
使い方:
なにも選択していない状態で、メニューから「レイヤー自動リネーム」を選んで実行してください。「現在のレイヤー名のリストを表示します。」というメッ セージが出ます。「はい」をクリックすると、リストがテキストオブジェクトとして作成されますので、これを書き換え、このテキストを選択した状態でまたスクリプトを実行してください。
または、変更したいレイヤー名のリストをあらかじめ用意しておき、それを選択してスクリプトを実行してもかまいません。
どちらの場合も、「名前を変更するのは、いま選択されているレイヤーのサブレイヤーですか?」というメッセージが表示されます。
 

10/cs/cs2 スポット→プロセス

対応バージョン:10/cs/cs2
2005年06月19日 up
書類のなかで使われているスポットカラーをすべてプロセスカラーに変換します。
とある掲示板で、出力業務に携わっている方の書き込みを見て、作ってみました。IllustratorのデータをQuarkExpressに張り付けると きに、同名のスポットカラーが重複してRIPに誤動作を起こさせるのを防ぎます。同じような問題をお持ちの方がどのくらいいらっしゃるか判りませんが、と りあえず置いておきます。
使い方:
処理したいファイルを開き、メニューから「スポット→プロセス」を選んで実行してください。
 

 レイヤー別に保存・書き出し

対応バージョン:10/cs/cs2
2006年12月31日 debug(書き出し処理の変更)
ひとつのファイルから、レイヤーごとにファイルを生成
ひとつのファイルの中の各レイヤーをそれぞれ1ファイルとして、指定したフォーマットで、別名保存もしくは画像の書き出しを行います。
保存・書き出しできるフォーマットは以下のとおりです。
[ ai , eps , pdf , psd , swf , gif , jpg , png8 , png24 , svg ]

フォルダ関係はちょっとご注意! >>

使い方:
(1) まず、書き出したいファイル(aiまたはeps)を開いておいてから、スクリプトを実行してください。設定用のテキストがファイル上に作られます。


(2) 書き出すフォーマットを指定するために、このテキストを書きかえてください。


(3) 書きかえたら、もう一度スクリプトを実行してください。設定用のテキストが書き変わり、こまかい設定が出来るようになります。


(4) これをまた書きかえて、さらにもう一度スクリプトを実行してください

ファイルと同じ階層に新規フォルダが作られ、その中に各レイヤーが指定の形式で保存されます。
新規フォルダの名前はファイル名の後ろに拡張子をつけたものになり、作られるファイルの名前は、各レイヤー名に通し番号をつけたものになります。
空レイヤー(なにもオブジェクトのないレイヤー)は、書き出されません。非表示のレイヤーとテンプレートレイヤーは書き出されます。

*ファイル上の設定テキストとメッセージですが、CSだけ、残念ながら日本語が文字バケしてしまうため、英文(Javascript本来の設定名)で出るようになっています。そのままでは意味がわかりにくいと思いますので、こちらをご参照ください。バージョンCSでの書き出しオプション設定

*pdfについては、保存オプションのうち、ビットマップ画像の圧縮に関する部分が、javascriptの変数をそのまま書く形で設定するように作った結果として、そのままではわからない部分があります。これも、こちらをご覧ください。PDF書き出しのオプション・対応表

設定用のテキストは、ファイル上ならどこにでも移動できます。
コピーして、他のファイルの設定テキストとして使うこともできます。ただし、オブジェクト名(レイヤーウィンドウを開いて個別のオブジェクトを表示させたときに見られる名前)が消えたり、書き変わらないようにご注意ください。
設定用のテキストが複数あるときは、重ね順で一番上にあるテキストの設定が適用されます。ひとつのファイルに複数の設定テキストを置き、必要に応じて傘ね順を変え、別フォーマットで書き出すこともできます。

《改造のTIPS》
スクリプトの、「// 保存/書き出しオプションのプロパティ設定」のコメント以下の部分をリファレンスに従って書き変えると、書き出しのオプションを増やすことができます。必要に応じて適宜変更してください。
 

 ハガキ宛名の作成・印刷

対応バージョン:10/cs/cs2
2007年1月6日 debug(データ読み込みのバグを修正)
あらかじめ作成しておいたテンプレートに住所録のテキストを読み込んで、宛名を自動作成・自動印刷します。

実行すると、ファイル上に新規にレイヤーを作り、そのサブレイヤーとして、ひとつのレイヤーにつき一つの宛先の形で、宛先の数だけテキストの流し込まれたレイヤーを作ります。

読み込めるデータは、タブ区切りか、カンマ区切り(csv)のテキストです。

使い方:
手順は次のとおりです。全部で4回、同じスクリプトを実行します。

1.テンプレートと流し込みテキストの用意
2.スクリプトの実行・1回目(設定テキスト設置)
3.設定テキストの書き換え
4.スクリプトの実行・2回目(流し込みボックス設置)
5.流し込みボックスの整形、文字設定
6.スクリプトの実行・3回目(テキスト流し込み)
7.流し込まれたテキストの確認
8.スクリプトの実行・4回目(印刷)


まず、テンプレートにするaiファイルを用意してください。

ハガキの宛名面の、宛名以外の共通の要素をすべて作ります。レイヤーはいくつあっても構いませんが、あとの作業を楽にするには、ひとつのレイヤーグループにまとめておくことをお勧めします。

次に、流し込み用のデータファイルを用意してください。
拡張子が「.txt」のファイルに、下のような形式でデータを作ります。文字コードはShift-jisにしてください。
項目が、タブかカンマ(,)で区切られた状態のリストです。
data1	data2	data3
000-0000	茨城県牛久市上柏田2-6-11	山田太郎
111-1111	静岡県静岡市葵区上伝馬19-48	島袋花子
222-2222	京都府京都市左京区田中門前町71-1	土佐犬
333-3333	沖縄県宮古島市平良字西里1000-12	ミシェル・ンデゲオチェロ

Excelを使って、下のように作ると便利です。
data1 data2 data3
000-0000 茨城県牛久市上柏田2-6-11 山田太郎
111-1111 静岡県静岡市葵区上伝馬19-48 島袋花子
222-2222 京都府京都市左京区田中門前町71-1 土佐犬
333-3333 沖縄県宮古島市平良字西里1000-12 ミシェル・ンデゲオチェロ

項目(列)の数は、この例では郵便番号・住所・氏名の3つですが、いくつあってもかまいません。
最初の行は、Illutrator上ではテンプレートの各項目の名前になります。ここは適当な名前をつけておいてください。
これを、「タブ区切りテキスト」か「カンマ区切りテキスト(csv)」の形で保存します。

このテキストファイルを、テンプレートファイルと同じか、下の階層においてください。

テンプレートのファイルを開いた状態で、スクリプトを実行してください。設定用のテキストが新規レイヤー上に作成されます。

この設定テキストの、データファイルの名前を書き変えてください。
下の階層のフォルダにデータを置いたときは、「folder/data.txt」という風にスラッシュでつないで書きます。
次に、項目ごとの印刷枚数を書き換えます。ここは大抵の場合1枚のままでしょう。

設定用テキストを書き変えたら、またスクリプトを実行してください。流し込み用のテキストボックスが作成され、データの最初の1セットがそこに流し込まれます。

最後の項目は、テキストの最後に改行が残ります。気持ち悪いですが、とりあえず支障はないと思いますので見逃してください(次回アップデートで直します)。

このテキストボックスを、配置したい大きさ、場所、フォントに調整し直してください。


もう一度スクリプトを実行してください。新規レイヤーが作成され、その下のサブレイヤーにデータがすべて流し込まれます。ひとつの項目のセットにつき1レイヤーの形で、同じ位置に重なってテキストが作られます。

はみ出しがないかどうか確認し、必要に応じて個別に修正してください。

最後にもう一度スクリプトを実行すると、印刷の手続きへ進みます。
確認のメッセージが出たところで、「はい」をクリックすると、プリンタにデータが送られ、印刷が始まります。
このとき、「[js] hagaki template」レイヤーの中身はプリントされません。

ここで「いいえ」をクリックすると、データを読み込み直すこともできます。また、すでにある「[js] hagaki texts」レイヤーの名前を変えて非表示にしておけば、そのままデータを新規に読み込みます。

印刷を実行する前に!!
少々面倒ですが、必ず、すべてのレイヤーで、流し込まれたテキストのボックスからのはみ出しがないか、ご確認ください。
また、試し刷り用の紙を使って、レイヤーをひとつだけ表示した状態で手動でプリントし、印刷の状態を確認してください。

印刷の処理が始まると、Illustratorからはキャンセルできません。プリンタのドライバから印刷のキャンセルを行うことになりますので、お使いのプリンタでのキャンセル方法を確認しておいてください。(実もフタもないやり方ですが、給紙トレイからハガキをひっこ抜くのが、とっさのキャンセル方法としてはいちばん早くて簡単かもしれません)

フォルダをあつかうスクリプトに関して、ちょっと注意していただきたいこと

フォルダ名と書類の名前のどちらにも、日本語(2バイト文字)が入らないようにしてください。
つまり、そのファイルが入っているフォルダ、そのフォルダが入っているフォルダ……と順々にさかのぼったすべてのフォルダの名前が半角英数字でないと、エラーになってしまいます。ただし、Windowsの「マイドキュメント」フォルダはそのままの名前で大丈夫です。また、WindowsXPだと、大抵問題なく処理できるようです。(XPでもできないことがあって、まだそのあたりがよくわかっていません)

また、スクリプトを適用するまえに、作業するファイルを一度「別名で保存」でおなじ場所に上書き保存してください。
Windows環境だと、これをしないと作業するファイルがどのフォルダにあるかを正しく読み取ってくれないことがあります。

現在、上のどちらかの原因でフォルダ内のファイルをうまく拾えなかったときには、メッセージを出して対応の方法を知らせる形に、スクリプトを順次書き変えています。

なお、いまのところ、作業するフォルダ・書類はすべてローカルの同じハードディスク上にあることが前提になってます。