InDesignで
糸でちくちく、一筆書き文字を描くようにするスクリプト。

stitchWork.jpg
文字をグラフィック化してそのポイントを利用して一つのパスにします。
ベジェ曲線のコンロールハンドルもパスポイントも一切がっさい、一次配列として追加しているので、全て直線になります。

一行テキスト専用です。
テキストフレーム内の一行の部分か、中身が一行のテキストフレームを選択して実行してください。元のテキストは残りますのでお好みで後始末をしてください。

とりあえず、線の種類は「直線ハッシュ」、予約色のシアンで生成しますので適当に変更してください。

/*
ちくちく一筆書き
"draw with a stroke"

使い方:
テキストを一行選択して実行、または1行テキストのテキストフレームを一つ選択して実行。
一筆書きのように文字をアウトライン化します。元テキストは残します。

動作確認:OS10.4.11 InDesign CS3

milligramme
www.milligramme.cc
*/
var doc=app.documents[0];
if(app.selection.length==1){
var selObj=doc.selection[0];
if (selObj.lines.length==1){
	//$.writeln(selObj.constructor.name)
	switch(selObj.constructor.name){
		case "Text":
		case "Character":
		case "Word":
		case "TextStyleRange":
		case "Line":
		case "Paragraph":
		case "TextFrame":
		var outTex=selObj.createOutlines(false); break;
		default: alert("対象外オブジェクトです");
		exit();
		}
	}else{
	alert("一行だけテキストを選んでください");
	exit();
	}

var singleStrokeArray=new Array();
var releaseTex=outTex[0].releaseCompoundPath();//複合パスを解除

convertToSingleStroke(releaseTex);//function-1へ
var stitchObj=arrayToPath(doc, singleStrokeArray, true, false, true);//function-2へ
}
//function-1
//グラフィック化された文字のパスを配列につめこむ
function convertToSingleStroke(obj){
for(var j=0; j < obj.length; j++){
	var pathObj=obj[j].paths;
	for(var i=0; i < pathObj.length; i++){
		pathObj[i].pathType=PathType.OPEN_PATH;
		for(var k=0; k < pathObj[i].pathPoints.length; k++){
			singleStrokeArray.push(pathObj[i].pathPoints[k].leftDirection);
			singleStrokeArray.push(pathObj[i].pathPoints[k].anchor);
			singleStrokeArray.push(pathObj[i].pathPoints[k].rightDirection);
			}
		}
	releaseTex[j].remove();
	}
}
//function-2
//配列をパスにする
function arrayToPath(document, array,PT, FC, SC){
var obj=document.rectangles.add();
obj.paths[0].entirePath=array;
if(PT==true){
	obj.paths[0].pathType=PathType.OPEN_PATH;
	}else{
	obj.paths[0].pathType=PathType.CLOSED_PATH;
	}
if(FC==true){
	obj.fillColor="Black";
	}else{
	obj.fillColor="None";
	}
if(SC==true){
	obj.strokeWeight=0.1;
	obj.strokeColor="Cyan";
	}else{
	obj.strokeWeight=0;
	obj.strokeColor="None";
	}
obj.strokeType=document.strokeStyles[11];//直線ハッシュ
}

トラックバック(0)

トラックバックURL: http://www.milligramme.cc/mtos/mt-tb.cgi/435

TranslateThis

このブログ記事について

このページは、mgが2009年10月 9日 15:29に書いたブログ記事です。

ひとつ前のブログ記事は「InDesign_ぐりぐり旋回その2」です。

次のブログ記事は「event_DTP Booster 007にいってきました編」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アーカイブ

Blog Parts