チェックは人の目で
では何をチェックすれば良いのか。前回の問題点で上げた懸念事項を解消するには、
- トンボの線色
- 仕上がりサイズ
がチェックできればいいかな。前回にも述べた通り、このチェックのためにPDFをいっこずつ開いていては非効率なので、作成されたPDFのファイル名にチェック情報を付加してみるよ。こんな感じに。
- 線色がレジストレーションなら "®"
- C100M100Y100K100なら"■"
- K100なら "□"
- それ以外の線色なら"∅"
- 作成されたアートボードのサイズ
ついでに、どうせファイル名をイジるなら作業番号も付加してみた。スクリプトはこんな感じ。
for (var i=pathObj.length-1; i >= 0; i--)
{
var targetPath = pathObj[i];
var targetPathStrokeColorSpot = "" + targetPath.strokeColor.spot;
pathObjLen = pathObjLen - 1;
if(
Math.round(targetPath.strokeWidth*1000) <= 320
&&
Math.round(targetPath.strokeWidth*1000) >= 140
&&
Math.round(targetPath.length*1000) == 24000
&&
targetPath.guides == false
)
{
selectedCounter++;
targetPath.selected=true;
if(
targetPathStrokeColorSpot.indexOf("[レジストレーション]") != -1
)
{
lineColorFlag[0] += 1;
}
else if(
targetPath.strokeColor.cyan == 100 &
targetPath.strokeColor.magenta == 100 &
targetPath.strokeColor.yellow == 100 &
targetPath.strokeColor.black == 100
)
{
lineColorFlag[1] += 1;
}
else if(
targetPath.strokeColor.cyan == 0 &
targetPath.strokeColor.magenta == 0 &
targetPath.strokeColor.yellow == 0 &
targetPath.strokeColor.black == 100
)
{
lineColorFlag[2] += 1;
}
else if(
targetPath.strokeColor.gray == 100
)
{
lineColorFlag[2] += 1;
}
else
{
lineColorFlag[3] += 1;
}
if ( selectedCounter == 4 )
{
selectedCounter = 0;
n = n+1;
monoArtboard();
resizeArtboard();
colorClass = "_" + n + "_";
if(lineColorFlag[0]) colorClass += "®";
if(lineColorFlag[1]) colorClass += "■";
if(lineColorFlag[2]) colorClass += "□";
if(lineColorFlag[3]) colorClass += "∅";
colorClass += estimateTrimsize();
if ( n == 1 ) saveAsAi(app.documents[0],null,colorClass,docName);
saveAsPdf_Bl25(app.documents[0],null,colorClass,docName);
colorClass = "";
activeDocument.selection = null;
}
}
}
function estimateTrimsize()
{
var eXY = estimateArtboardSize();
var eX = eXY[0];
var eY = eXY[1];
var trimSize;
trimSize = eX + "x" + eY;
if (eX == 594 && eY == 841) trimSize = "A1T";
if (eX == 841 && eY == 594) trimSize = "A1Y";
if (eX == 420 && eY == 594) trimSize = "A2T";
if (eX == 594 && eY == 420) trimSize = "A2Y";
if (eX == 297 && eY == 420) trimSize = "A3T";
if (eX == 420 && eY == 297) trimSize = "A3Y";
if (eX == 210 && eY == 297) trimSize = "A4T";
if (eX == 297 && eY == 210) trimSize = "A4Y";
if (eX == 148 && eY == 210) trimSize = "A5T";
if (eX == 210 && eY == 148) trimSize = "A5Y";
if (eX == 105 && eY == 148) trimSize = "A6T";
if (eX == 148 && eY == 105) trimSize = "A6Y";
if (eX == 515 && eY == 728) trimSize = "B2T";
if (eX == 728 && eY == 515) trimSize = "B2Y";
if (eX == 364 && eY == 515) trimSize = "B3T";
if (eX == 515 && eY == 364) trimSize = "B3Y";
if (eX == 257 && eY == 364) trimSize = "B4T";
if (eX == 364 && eY == 257) trimSize = "B4Y";
if (eX == 182 && eY == 257) trimSize = "B5T";
if (eX == 257 && eY == 182) trimSize = "B5Y";
return trimSize;
}
function estimateArtboardSize()
{
var artBoards = app.activeDocument.artboards;
var artBoardSize = [];
for ( var j = 0 ; j < artBoards.length ; j++ )
{
var artBoardWidth = point2mm(artBoards[j].artboardRect[2]
- artBoards[j].artboardRect[0]);
var artBoardHeight = point2mm(artBoards[j].artboardRect[1]
- artBoards[j].artboardRect[3]);
artBoardSize.push(artBoardWidth);
artBoardSize.push(artBoardHeight);
}
return artBoardSize;
}
ゴールは近いよ♪
んで、こんなサンプルデータで処理してみた。

で、実行してみた結果がこちら。

スクリプトで処理されたIllustratorデータを作業番号をつけて別名保存し、二つのPDFを作成。こうすると、
- トンボはレジストレーションで、サイズはA4縦
- トンボはレジストレーションとK100が混じっており、サイズはA4正寸ではない
ってのがファイル名を見るだけでチェックできます。満足(^_^)
最後に、実際の動きを動画にしてみたので興味のある方は御覧ください。
コメント