昨日のブログの強化版。

ただし、かなりいい加減(笑)なプログラムです。

っていうか、まだ途中書きだと思って下さい。


テキストフレームを選択し、プログラムを実行するとCドライブ上にTag.txtというテキストファイルが出来ます。

そのテキストをExtendScript Toolkitにコピペして実行すると、選択したテキストフレームが出来上がります。

(まだ、不完全ですが…)


amiza_retのブログ-1) 元のテキストフレーム

1) テキストフレーム選択し、javascript実行


amiza_retのブログ-2) テキストファイルが出来上がる

2) Cドライブの直下にTag.txtが出来上がる


amiza_retのブログ-3) ExtendScriptToolkitにコピペ

3) ExtendScript Toolkitに先のテキストをコピペ


amiza_retのブログ-4) テキストフレームが出来上がる
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);
}