layerUnlock();
listFigNumber();
alert("finished.");

function layerUnlock(l){
lay = app.activeDocument.layers;
for (i=0; i<lay.length; i++){
lay[i].locked = false;
}
}

function listFigNumber()
{
var ls = []
doc = app.activeDocument.pages;
for (j = 0; j < doc.length; j++){
pg = doc[j]
for (i = 0; i < pg.allGraphics.length; i++){
graphic = pg.allGraphics[i]
graphic.transparencySettings.blendingSettings.opacity = 40;
ls[i] ="null"
try{
ls[i] = graphic.itemLink.name
}catch(e){}
tf = pg.textFrames.add();
tf.move("to",[0, 0]);
tf.contents = "(" + cntNonZeroStart(i) + ")";
tf.geometricBounds = graphic.geometricBounds;
tf.textFramePreferences.verticalJustification = VerticalJustification.centerAlign;
para = tf.paragraphs[0]
para.strokeColor = "スウォッチのカラー名(文字縁色)";
para.fillColor = "スウォッチのカラー名(文字色)";
para.pointSize = "12Q";
para.justification = Justification.centerAlign;
count++;
}
for(i=0; i < ls.length; i++){
textWriter(saveFilePath(), graphicInfo(ls, i, j));
}
}
}

function textWriter(filepath, str){
var fileObj = new File(filepath);
fileObj.open("a");
fileObj.encoding = "UTF-8";
fileObj.lineFeed = "Unix";
fileObj.writeln(str);
fileObj.close();
fileObj = null;
}

function saveFilePath(){
sep = "/"
saveDir = Folder.desktop.fullName + sep;
return saveFilePath = saveDir + app.activeDocument.name + ".txt";
}

function graphicInfo(ls, i, j){
return cntNonZeroStart(j) + "\t" + cntNonZeroStart(i) + "\t" + ls[i]
}

function cntNonZeroStart(i){
return i+1
}

コメント・シェア

テキスト抽出

activeDocument.selection = null;
var txtObj = activeDocument.textFrames;
for (var i = 0; i < txtObj.length; i++){
try{
txtObj[i].selected = true;
}catch(e){}
}

var selObj = activeDocument.selection;
for (var i = 0; i < selObj.length; i++){
if (selObj[i].typename == "TextFrame"){
alert(selObj[i].contents)
}
}

コメント・シェア

ファイルパス

var fileObj = new File("~/desktop/dummy.txt");

など、何らかのfileObjがあるものとする。

目次

  1. パス
    1. フルパス
    2. ディレクトリネーム
    3. ベースネーム
    4. 拡張子の取得
  2. 存在判定
  3. 実行中のスクリプト
  4. 特定の場所
    1. カレントディレクトリ
    2. デスクトップ
    3. マイドキュメント
    4. ゴミ箱

パス

フルパス

fileObj.fullName

ディレクトリネーム

fileObj.path

で取得できる。
取得されるパスは、末尾にスラッシュなしである。

ベースネーム

fileObj.name

拡張子の取得

fileObj.name.split('.').pop()

存在判定

fileObj.exists

実行中のスクリプト

$.fileName

特定の場所

カレントディレクトリ

Folder.current.fullName

デスクトップ

Folder.desktop.fullName

マイドキュメント

Folder.myDocuments.fullName

ゴミ箱

Folder.trash.fullName

コメント・シェア

Illustratorで作られたベース版から分版するもので,出力の手間を減らすためのスクリプト.
版に共通レイヤーが上と下で何枚あるか,出力先をどこにするかが冒頭のコンフィグです.
出力PDF名はレイヤー名にしてあります.

baseTopLayerNum = 0;  //レイヤータブで上から何枚のレイヤーが共通か(0なら共通なし)
baseBottomLayerNum = 0; //レイヤータブで下から何枚のレイヤーが共通か(0なら共通なし)
saveDir = Folder.desktop.fullName + "/";

layerLen = app.activeDocument.layers.length;

for(var i = 0; i < layerLen; i++){
var layer = app.activeDocument.layers[i];
if(i < baseTopLayerNum || i >= layerLen - baseBottomLayerNum){
layer.visible = true;
}else{
layer.visible = false;
}
}

for(var i = baseTopLayerNum; i < layerLen - baseBottomLayerNum; i++){
var layer = app.activeDocument.layers[i];
layer.visible = true;
var filename = new File(saveDir + layer.name + ".pdf");
var opt = new PDFSaveOptions();
activeDocument.saveAs(filename, opt);
layer.visible = false;
}

コメント・シェア

ここでは

var layer = app.activeDocument.layers["レイヤー名"];

または、i番目のレイヤーについて

var layer = app.activeDocument.layers[i];

であるものとします。

アクティブ化

app.activeDocument.activeLayer = layer;

名前の変更

layer.name = "変更後のレイヤー名";

ロック

layer.locked = true;

可視化

layer.visible = true;

削除

layer.remove();

カウント

forループのためにレイヤー数を取得するには

app.activeDocument.layers.length

とします。

コメント・シェア

IllustratorでPDF出力する

var filename = File.saveDialog("保存ファイル名は何にしますか?");
var opt = new PDFSaveOptions();
opt.trimMarks = true;
activeDocument.saveAs(filename, opt);

optではさまざまな設定ができます.

一括PDF出力

ディレクトリを指定して,そこに格納されたaiファイルをPDF出力します.

var tgtDir = Folder.selectDialog("aiファイルが格納されたディレクトリを選択");
var files = tgtDir.getFiles();

var l = [];
for (var i = 0; i < files.length; i++) {
if(files[i].name.split('.').pop() == "ai"){
l.push(files[i].fullName);
}
}

for(var i = 0; i < l.length; i++){
file = new File(l[i]);
app.open(file);
var pdfSaveName = new File(app.activeDocument.fullName + ".pdf");
var opt = new PDFSaveOptions();
activeDocument.saveAs(pdfSaveName, opt);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

コメント・シェア

  • page 1 of 1
著者の絵

ねこせんせい

One cat just leads to another.
(Ernest Hemingway)


色鉛筆塗り


校正室