自動化でのチェック方法


Notice: Trying to access array offset on value of type bool in /var/www/html/gackey/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123

チェックは人の目で

では何をチェックすれば良いのか。前回の問題点で上げた懸念事項を解消するには、

  • トンボの線色
  • 仕上がりサイズ

がチェックできればいいかな。前回にも述べた通り、このチェックのために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を作成。こうすると、

  1. トンボはレジストレーションで、サイズはA4縦
  2. トンボはレジストレーションとK100が混じっており、サイズはA4正寸ではない

ってのがファイル名を見るだけでチェックできます。満足(^_^)

最後に、実際の動きを動画にしてみたので興味のある方は御覧ください。

コメント