空欄を削除する (Illustrator CS2編)

Illustratorでは間違ってページ上でクリックしてしまい、何も入っていないテキスト(エリア、ポイント)ができてしまうことがあります。この場合、書式メニューから「制御文字を表示」を選択することで不要な空欄テキストを発見し削除することができます。
が、さすがに面倒なのでスクリプトで処理すると簡単です。以下のスクリプトはIllustrator CS/CS2/CS3用で、文字が1文字だけの場合に空白やタブ、改行コードであればテキストブロックごと削除します。空白が2つだったり改行が2行分あるような場合には削除の対象とはなりません。


docObj = app.activeDocument;
for (i=docObj.textFrames.length-1; i>=0; i--)
{
c = docObj.textFrames[i].contents;
if ((""+c.charCodeAt(0)) == "NaN") docObj.textFrames[i].remove();
if ((c.length == 1) && (c.charCodeAt(0) < 0x21))
{
docObj.textFrames[i].remove();
}
}

IllustratorでなくPhotoshopの場合は以下のスクリプトになります。

docObj = app.activeDocument;
for (i=docObj.artLayers.length-1; i>=0; i--)
{
if (docObj.artLayers[i].kind == LayerKind.TEXT)
{
c = docObj.artLayers[i].textItem.contents;
if ((""+c.charCodeAt(0)) == "NaN") docObj.artLayers[i].remove();
if ((c.length == 1) && (c.charCodeAt(0) < 0x21))
{
docObj.artLayers[i].remove();
}
}
}

[サンプルをダウンロード]