2011/12/18

宛名印刷

最近は、年賀状を印刷するのが面倒なので、印刷に出すことにしています。ポストカードと同じ作りですね。

今回は、ここにしました。キングプリンターズ
ネットで入稿して代引きで到着を待つという手軽さです。

こうして作ったこともあり、宛名面が普通の年賀はがきとは違うフォーマットになってしまいました。。今年は、妻が産後で忙しいので、宛名は印刷にしようということに。コンピュータについては詳しいつもりなので、「宛名印刷なんてちょろいぜ」って思っていました。



何も考えず、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 件のコメント:

コメントを投稿