クリエイター手抜きプロジェクト[281]Illustrator CS4/CS5編 100ページ分スレッドテキストを作成する/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,800文字)


Illustratorは扱えるけど、InDesignは扱いがよくわからないという人もいるでしょう。でも、ページものの仕事が来てしまったときには、やはり頑張ってInDesignで......という気力がでないこともあります。

そんな場合は、頑張ってIllustrator CS4でページもののPDFを作るという方法もあります。CS4では複数のアートボードが最大100まで作成でき、PDFとして保存すればマルチページになるわけですから、これをどうにか利用したいところです。

ということで、以下のスクリプトは100ページ分のスレッドテキスト(流し込みするテキストフレーム)を作成するものです。



(function(){
var abNum = 100; // 100ページ
var pageW = 595.28; // A4サイズ横幅
var pageH = 841.89; // A4サイズ縦幅
var marginW = 20; // 横のマージン
var marginH = 30; // 縦のマージン
var docObj = app.documents.add(
DocumentColorSpace.RGB,
pageW, // A4サイズ
pageH,
abNum,
DocumentArtboardLayout.GridByRow, // 左から右、上から下
0, // アートボード間の余白
10 // アートボードサイズの平方根。Math.SQRT(abNum)
);
var X = 0;
var Y = pageH * 10;
var prevtxtObj = null;
for(var Y=5; Y>0; Y-=0.5){
for(var X=0; X<5; X+=0.5){
var rx = X*pageW+marginW;
var ry = Y*pageH-marginH;
var rw = pageW-marginW*2;
var rh = pageH-marginH*2;
var rect = activeDocument.pathItems.rectangle(ry, rx, rw, rh);
var txtObj = activeDocument.textFrames.areaText(rect);
txtObj.translate(X*pageW, Y*pageH);
if (prevtxtObj) txtObj.previousFrame = prevtxtObj;
prevtxtObj = txtObj;
}
}
})();


場合によっては2段組にしたい、3段組にしたいこともあります。そのような場合は、以下のスクリプトを使います。


(function(){
var abNum = 100; // 100ページ
var pageW = 595.28; // A4サイズ横幅
var pageH = 841.89; // A4サイズ縦幅
var marginW = 20; // 横のマージン
var marginH = 30; // 縦のマージン
var columnCount = 3; // 段組数
var columnGutter = 40; // 段と段の間隔
var docObj = app.documents.add(
DocumentColorSpace.RGB,
pageW, // A4サイズ
pageH,
abNum,
DocumentArtboardLayout.GridByRow, // 左から右、上から下
0, // アートボード間の余白
10 // アートボードサイズの平方根。Math.SQRT(abNum)
);
var X = 0;
var Y = pageH * 10;
var prevtxtObj = null;
for(var Y=5; Y>0; Y-=0.5){
for(var X=0; X<5; X+=0.5){
var rx = X*pageW+marginW;
var ry = Y*pageH-marginH;
var rw = pageW-marginW*2;
var rh = pageH-marginH*2;
var rect = activeDocument.pathItems.rectangle(ry, rx, rw, rh);
var txtObj = activeDocument.textFrames.areaText(rect);
txtObj.translate(X*pageW, Y*pageH);
txtObj.columnCount = columnCount;
txtObj.columnGutter = columnGutter;
if (prevtxtObj) txtObj.previousFrame = prevtxtObj;
prevtxtObj = txtObj;
}
}
})();


段組数と間隔は以下の2行の値を調整してください。

var columnCount = 3; // 段組数
var columnGutter = 40; // 段と段の間隔


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

Final Cut Pro X出ました。買いました。入れました。作品とかCMを作るにはいいかも。レンダリングしなくてもリアルタイム(マウスを動かすだけでエフェクト処理がリアルタイムに表示される)で処理できます。でも、以前とはかなり違うので、既存のワークフローを置き換えるというのはできないかも。うちみたいな映像素材で大量レンダリング処理するようなのはFinal Cut Pro Xでは無理みたいです。ということで、一応Final Cut Pro Xのページを作成してみました。

・Final Cut Pro X使い方辞典
< http://www.openspc2.org/reibun/FinalCutProX/ >

・毎度おなじみASCII.jpの連載。HTML5+NimbleKitでiPhoneアプリ作り第6回
「NimbleKitで自分だけのiPodアプリを作ろう」
< http://ascii.jp/elem/000/000/614/614469/ >

・Google API Expertが解説する HTML5逆引きリファレンス【発売中!!】
< http://www.amazon.co.jp/dp/4844330349 >

・iPhone/iPad × HTML5アプリ制作
< http://www.amazon.co.jp/dp/4797362618 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >