昨日のブログの強化版。
ただし、かなりいい加減(笑)なプログラムです。
っていうか、まだ途中書きだと思って下さい。
テキストフレームを選択し、プログラムを実行するとCドライブ上にTag.txtというテキストファイルが出来ます。
そのテキストをExtendScript Toolkitにコピペして実行すると、選択したテキストフレームが出来上がります。
(まだ、不完全ですが…)
1) テキストフレーム選択し、javascript実行
2) Cドライブの直下にTag.txtが出来上がる
3) ExtendScript Toolkitに先のテキストをコピペ
4) 元の(元に近い?)テキストフレームが完成。
実際に、実行して思いました…。
「まだまだ改良しなきゃダメだー」
結構前に作って、たぶん、何かのプログラム作成用に作ったプログラムです。
; も抜けてます…。
一行目にDocObj = app.activeDocument;も必要。
ごく一部の属性のみにしか現在は対応していません…。
段落スタイルも一行目のみしか書き出されていません…。
コメントもエラー処理も皆無す。
けど、このアイデアは面白いと思うのですよ。
「プログラムを作成するプログラム」
って。
時間があれば、もう少し手を加えて行こうと思います。
(誰か手を加えて下さい!)
//テキストフレームを選択しBoundsをプログラムに書ける形に出力
var LFCR = String.fromCharCode(13); // 改行
var QUART = String.fromCharCode(34); // クォーテーションマーク
var textFName = "txtObj01";
txtObj = app.activeDocument.selection;
a0 = txtObj[0].visibleBounds[0];
a1 = txtObj[0].visibleBounds[1];
a2 = txtObj[0].visibleBounds[2];
a3 = txtObj[0].visibleBounds[3];
PageNo = app.activeWindow.activePage.name -1;
strPages = "PageObj = DocObj.pages[" + PageNo + "]" + LFCR + textFName + " = PageObj.textFrames.add();"
strBounds = textFName + ".visibleBounds = [" + a0 + ", " + a1 + ", " + a2 + ", " + a3 + "];";
strContentType = textFName + ".contentType = " + txtObj[0].contentType;
strLabel = textFName + ".label = " + QUART + txtObj[0].label + QUART;
strContents = textFName + ".contents = " + QUART + txtObj[0].contents.replace(/\r/g,"▼") + QUART;
strStrokeWeight = textFName + ".strokeWeight = " + txtObj[0].strokeWeight;
strStrokeType = textFName + ".strokeType = " + QUART + txtObj[0].strokeType.name + QUART;
strParagraphStyle = textFName + ".paragraphs[0].appliedParagraphStyle = " + QUART + txtObj[0].paragraphs[0].appliedParagraphStyle.name + QUART;
strFillTint = txtObj[0].fillTint;
strStrokeTint = txtObj[0].strokeTint;
strOverflows = txtObj[0].overflows;
strIndex = txtObj[0].index;
var fileObj = new File("C:/tag.txt");
var flag = fileObj.open("w");
if (flag == true)
{
fileObj.writeln(strPages);
fileObj.writeln(strBounds);
fileObj.writeln(strContentType);
fileObj.writeln(strLabel);
fileObj.writeln(strContents);
fileObj.writeln(strStrokeWeight);
fileObj.writeln(strStrokeType);
fileObj.writeln(strParagraphStyle);
}