前回の記事に上げた、トリムマーク(分割されたもの)で作成されたデータのトリミング自動化を試みるよ。IllustratorはjavaScriptをサポートしてるんでこれを使用。自動化の手順(フロー)としては、
- トリムマークを選択する
- 選択されたトリムマークを基に、アートボードを設定する。
- PDF保存する。
文章で表すだけならホント簡単だね、、、
まずはお手軽に作成
トリムマークの選択
分割されたままの状態と仮定する
人間であればモニターに表示されたトリムマークの「形」を視認することによってトリムマークを識別できるんだけど、スクリプトでは一定の条件に一致するものをトリムマークとして識別させなければならない。では、トリムマークを条件付けできる特徴と言うと、
- 線の色はレジストレーションで、塗りはナシ
- 線幅は0.3pt
- 4つの角トンボと4つのセンタートンボがある
となっているハズ(分割されているので変更されている可能性がある)なので、これに該当するオブジェクトがトリムマークである可能性が非常に高い。後は、ドキュメント上の全てのオブジェクトに対して、条件に合致したヤツのselectedフラグをtrueにすればオッケーなんだけど、もう少し使い勝手を吟味する。
そもそも、トリムマークを選択するのは、次項でアートボードを設定するためだよね。となると、手動の場合と同様にセンタートンボさえ選択できればオッケー。んじゃ、センタートンボの特徴は?ってえと、
- 線の色はレジストレーションで、塗りはナシ
- 線幅は0.3pt
- 線の長さは24pt
ってなトコで、これらの条件を満たす直線オブジェクトを選択できれば良さそう、、、なんだけど、やっぱりトンボを修正されていると選択できない。
修正されたトリムマークもある
どんな感じに修正されているか調べてみると、
- 線の色をK100やC100M100など、使用色のみにしている
- 線幅を細くしている
ってのがほとんどだね。うん、気持ちはワカル。自動分版でトリムマークのみの出力ミスを防ぐためとか、印刷の見当精度を上げるためとか。そこで、トンボの選択条件を少し緩和してみた。
- 線の色は問わない
- 線幅は0.14〜0.32pt
- 線の長さは24pt
Math.round(targetPath.strokeWidth*1000) <= 320
&&
Math.round(targetPath.strokeWidth*1000) >= 140
&&
Math.round(targetPath.length*1000) == 24000
うん、イイ感じだ。
アートボードの設定
続いて、アートボードを仕上がりサイズにフィットさせるよ〜。と、その前に。一つのドキュメントに複数のアートボードが存在した状態でPDFを作成すると、複数ページのPDFができちゃったりするんで、不要なアートボードを削除します。
function monoArtboard()
{
var activeDoc = app.activeDocument;
if ( activeDoc.artboards.length > 1 )
{
for ( var j = activeDoc.artboards.length-1 ; j > 0 ; j-- )
{
activeDoc.artboards.remove(j);
}
}
}
こんな感じ。んで、フィッティング。
function resizeArtboard()
{
var activeDocument = app.activeDocument;
activeDocument.fitArtboardToSelectedArt(0);
var activeArtboard = activeDocument.artboards[0];
activeArtboard.artboardRect =
[
activeArtboard.artboardRect[0] + 36,
activeArtboard.artboardRect[1] - 36,
activeArtboard.artboardRect[2] - 36,
activeArtboard.artboardRect[3] + 36
];
}
.fitArtboardToSelectedArt()で選択されたパスにアートボードをフィットさせてから、上下左右を36ptずつ加減してます。
PDF保存
saveOptsPdf.pDFPresetとか使ったりして保存するだけですね。
お手軽故の問題点
既にお気付きの方もいらっしゃると思いますが、上記のお手軽手法はとても限定的なんですよ。一つのドキュメントに複数頁がある場合の対処がダメで、、、画像の方が分かりやすいかな?
こーゆーのが、
こーなっちゃいます。なので、もうちょっと?手を加えていきます。
今回はここまで。次回へ続きます。
コメント