top

全てのスタイルを読み込みたい。(未完成)

by buruge ~ 3月 18th, 2008. Filed under: DTP, InDesignCS3+XML.

■XSLTで表組

InDesignにて、XMLとXSLTを使い表組を生成しています。
表組用のタグをきちんと組めば、ヘッダ行の指定までXSLTできて思った以上に使えるもんだなあと関心。

けど、体裁までは組めないので、当然ながらスタイルを用意しておいてタグとマップする作業も行わないといけません。
ついこの間まで表やセルのタグは<表>や<セル>のままでないといけないのかと思っていたんですが、全然そんなことないんですね。
よくよく考えれば当然ではあるんだけど、なんでか固定観念というか先入観でそう思い込んでしまっていました。いけませんわ。
そのおかげでタグ名とスタイル名さえ合わせていれば、セルのタグとセルスタイル、表のタグと表スタイルのマップが簡単にできるので非常に効率が良いです。

ただ、今回は体裁上、スタイルの他に「合成フォント」や「文字組みアキ量設定」も指定してやらないといけないつくりになっているので、XMLを読み込むたびにスタイルに合成フォントに文字組みアキ量設定に…といくつもの設定を読み込まないといけないのがめんどうでした。
スタイルに関しては表スタイルから読み込めば、セルスタイルから文字スタイルにいたるまで片っ端から読み込んでくれるのですが、合成フォントと文字組みアキ量設定を読み込むのにまたダイアログ開いて云々っていうのが若干煩わしいというか。

■じゃあ全部一気に読み込めばいいか…と思ったけど

そこで、ふと思い出したのが、この間PAGE2008でスクリプトに関するコンファレンスのスピーカーをつとめておられた山崎氏の会社、有限会社デジタル・ワークスのWEBサイトに「全スタイル自動読み込み」というスクリプトが紹介されていたなあと思いあたり、せっかくなので挑戦してみました。

スタイルに関してはimportStylesで簡単に読み込んでしまえるのですが、合成フォントと文字組みアキ量設定の読み込み方が分からない。
この二つに関してはリファレンスにも載ってない。
お〜まち様のWEBにあるオブジェクトモデルを見ていると、どうやらそれぞれのオブジェクトが「CompositeFont」「MojikumiTable」というところまでは分かったのですが、どうにもインポートはうまくいかない。というかよくわからない。

少々強引なやり方ですが、読み込み元のファイルに、文字組みアキ量設定を適用して合成フォントで書き込まれたテキストオブジェクトを用意しておいて、それを選択してコピーし、適用したいドキュメント側にペーストすれば情報も移動してくれるんじゃないかなと考えて、スクリプトで動かしてみることに。(ちなみに手動でコピペすると、きちんと二つともペースト先にも反映される)

■思った以上に厄介な合成フォント

結果としては、文字組みアキ量設定はほぼ確実に移動してくれるんだけど、合成フォントが来ない。
良くわからないのが、たまーーーーーーーーにちゃんと来る時がある。一瞬できたのかと勘違いするからやめてほしい。(^^;

手作業でコピペすると合成フォントの設定ごとコピーしてくれるのに、スクリプトでコピーすると来ないのはやはりクリップボードに保持するデータ量が違うってことなんだろうけど、これはどうにもならないのかなぁ。
あからさまにスマートでない結果はいかんともしがたいのですが、本来どういう読み込み方をするんだろう。

一応、
app.activeDocument.compositeFonts[1];
で、一つ目の合成フォントは取得できるみたいなので(0には「合成フォントなし」が入ってる)それを移したいドキュメント側にも設定してあげればいいとは思うのですが、とりあえず現在も試行錯誤中です。
作ってる人が居るんだから、できないはずがない訳だしなんとかしなきゃ。

Leave a Reply