最近は、年賀状を印刷するのが面倒なので、印刷に出すことにしています。ポストカードと同じ作りですね。
今回は、ここにしました。キングプリンターズ。
ネットで入稿して代引きで到着を待つという手軽さです。
こうして作ったこともあり、宛名面が普通の年賀はがきとは違うフォーマットになってしまいました。。今年は、妻が産後で忙しいので、宛名は印刷にしようということに。コンピュータについては詳しいつもりなので、「宛名印刷なんてちょろいぜ」って思っていました。
何も考えず、OSXのアドレスブックで、送り先を整理し始めました。妻と自分の分を一つにまとめて、住所を確認して。これを何かツールで印刷したらOKと思ってました。
ツールを検索すると、いくつか出てきます。
「葉書AB」http://www.yamamotosoftware.jp/software/hagakiab.html
シンプルでいい感じのソフト。無料なのがすごい。
ただし、レイアウトは通常年賀状のみ。今回は使えず。
「宛名職人」http://atenasyokunin.com/new/mac/
有名ソフトですね。これならやりたいことができそうだけど、高い。
たぶん他にもあると思います。
なんか、宛名職人を買ってやるってのがどうも気に入らなくて、Illustratorだけでできないかなーと思って、トライしてみることにしました。
まさか、大変な思いをすることになるとは知らず。。。
まず調べてすぐに気になった機能は、「変数」という機能。
Webのデザインとかで使うらしいのですが、画面の中の文字や画像などをデータセットという単位に保存して、切替が簡単にできるという機能です。
早速これの使い方をスタディー。
こちらのサイトがわかりやすかったです。http://kohtguchi.at.webry.info/200912/article_4.html
とりあえず、スタディーしたところ、うまく使えそうです。
データは、XMLで作れば、それを読み込むこともできるみたいです。
ただし、これで100枚以上の年賀状宛先を作ったら、印刷が自動化できるのかがわかりません。llustratorの標準機能では、どうも出来なさそうな予感。
なので、これならスクリプトを使えばいいかなと思いました。
Illustratorで使えるスクリプトは、AppleScriptとJavascript。文法的には、僕はJavaScriptの方が読みやすいので、それを使いたいが、データセットをどう扱うかがわからない。
そこで、Illustratorのサンプルを見てみました。
すると、AppleScriptのサンプルに「データセット」というのがあり、名刺をcsvのデータを使ってたくさんpdfに書き出すというものでした。
「あ!これじゃん!」ってことで、これを使ってやってみることにしました。
まず、アドレスブックの内容をcsvに書き出すために、標準ではできないので、ツールを使います。AppStoreにいいのがありました。
「AB2CSV」http://itunes.apple.com/jp/app/ab2csv/id402453326?mt=12
書き出したcsvを整理して、サンプルのスクリプトで変換を試みます。
残念ながら、csvがタブ区切り用のスクリプトなので、","に変えます。
(コードをぎゃちゃがちゃ)
読み込みはできたのですが、日本語が文字化け。
文字コードの問題っぽいので、UTF-8に変更していきます。
AppleScriptでUTF-8を明示的に使う方法を調べて、がちゃがちゃ。
コード的には、完璧に出来てるのに、どうしても途中でエラーになります。
それから、数時間、あーでもないこーでもないと、うとうとしながら寝コーディング。
「もうだめ!!」
ということで、ギブアップ。
「今日はやめて寝よう」と思ったのですが、悔しい。
改めて整理して考えると、
「csvをデータセットとして取り込むところまでは出来てる」
ならば、pdfに書き出すところだけ、JavaScriptで作ればいいのでは?
ということで、いらないコードをAppleScriptから消して、データセットに変換する機能だけ実現。続きは寝てから。。。
再び、Adobeのサンプル。JavaScriptのサンプルにも、データセットの取り扱いがありました。あとJavaScriptは前にもいじったので、リファレンスなど閲覧して学習。
がちゃがちゃ。
なんとか、書き出しも完成!!
ということで、なんとか6時間ぐらいかけて、仕組み完成。
それで、次はアドレスブックにデータ入力。かれこれ4時間ぐらい。
結局これなら、宛名職人買った方がよかったかもって感想です。。。
せっかくノウハウたまったから、今度JavaScriptオンリーでできるようにして、配布しようかな。
0 件のコメント:
コメントを投稿