Created
October 15, 2010 03:01
-
-
Save milligramme/627529 to your computer and use it in GitHub Desktop.
Illustrator placed graphic info labeler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
配置画像の情報収集 | |
"collect placed image infomation" | |
使い方: | |
Illustrator書類を開いて実行、複数ファイル可。 | |
開いている全てのIllustrator書類上の配置画像の変倍率とファイル名を別レイヤに表示、 | |
その後EPSで複製保存をして、オリジナルは保存せずに閉じます。 | |
グループ化したもの、複数画像をまとめてマスクしたものなどでは取りこぼしがあるかも | |
しれません。 | |
動作確認:OS10.4.11 Illustrator CS3 | |
milligramme | |
www.milligramme.cc | |
*/ | |
var doc = app.documents; | |
var CR = String.fromCharCode(13);//改行 | |
var SEPA = String.fromCharCode(47);//スラッシュ | |
for(var i = doc.length-1; i >= 0; i--){ | |
//情報ラベル枠色 | |
var framColor = new CMYKColor(); | |
framColor.cyan = 0; | |
framColor.magenta = 0; | |
framColor.yellow = 100; | |
framColor.black = 0; | |
var pValue = 0; | |
var infoArray = new Array(); | |
var positionArray = new Array(); | |
var lay = doc[i].layers; | |
for(var ly = 0; ly < lay.length; ly++){ | |
lay[ly].locked = false; | |
var pgItm = lay[ly].pageItems; | |
for(var pgi = 0; pgi < pgItm.length; pgi++){ | |
pgItm[pgi].locked = false; | |
//$.writeln ("doc"+i+"_"+pgItm[pgi].typename+"__"+(pgi+1)+"/"+pgItm.length); | |
var mA, mB, mC, mD, posX, posY, nm; | |
if(pgItm[pgi].typename == "PlacedItem" || (pgItm[pgi].typename == "GroupItem" && pgItm[pgi].placedItems.length >= 1)){ | |
if(pgItm[pgi].typename == "PlacedItem"){ | |
mA = pgItm[pgi].matrix.mValueA; | |
mB = pgItm[pgi].matrix.mValueB; | |
mC = pgItm[pgi].matrix.mValueC; | |
mD = pgItm[pgi].matrix.mValueD; | |
posX = pgItm[pgi].position[0]; | |
posY = pgItm[pgi].position[1]; | |
nm = decodeURI(pgItm[pgi].file); | |
nm = nm.replace(nm,nm.substr (nm.lastIndexOf(SEPA)+1, nm.length-nm.lastIndexOf(SEPA))); | |
} | |
if(pgItm[pgi].typename == "GroupItem" && pgItm[pgi].placedItems.length >= 1){ | |
mA = pgItm[pgi].placedItems[0].matrix.mValueA; | |
mB = pgItm[pgi].placedItems[0].matrix.mValueB; | |
mC = pgItm[pgi].placedItems[0].matrix.mValueC; | |
mD = pgItm[pgi].placedItems[0].matrix.mValueD; | |
nm = decodeURI(pgItm[pgi].placedItems[0].file); | |
nm = nm.replace(nm,nm.substr (nm.lastIndexOf(SEPA)+1, nm.length-nm.lastIndexOf(SEPA))); | |
if(pgItm[pgi].clipped == true){//画像がクリップされているとき | |
posX = pgItm[pgi].pageItems[0].position[0]; | |
posY = pgItm[pgi].pageItems[0].position[1]; | |
} | |
else{ | |
posX = pgItm[pgi].position[0]; | |
posY = pgItm[pgi].position[1]; | |
} | |
} | |
var pgItmHs = Math.round((Math.sqrt((Math.pow(mA,2)) + (Math.pow(mB,2)))*100000))/1000; | |
var pgItmVs = Math.round((Math.sqrt((Math.pow(mC,2)) + (Math.pow(mD,2)))*100000))/1000; | |
infoArray.push(pgItmHs+"×"+pgItmVs+"%"+CR+nm);//変倍率とファイル名を配列に追加 | |
positionArray.push([posX,posY]);//情報ラベルのポジションを配列に追加 | |
pValue++; | |
} | |
}//for pgi | |
}//for ly | |
//情報ラベル | |
if(doc[i].layers[0].name != "infoLay"){ | |
var infoLayer = doc[i].layers.add(); | |
infoLayer.name = "infoLay"; | |
} | |
for(var j = 0; j < pValue; j++){ | |
var infText = infoLayer.textFrames.add(); | |
infText.contents = infoArray[j]; | |
infText.textRange.size = 9; | |
infText.textRange.characterAttributes.autoLeading = false; | |
infText.textRange.characterAttributes.leading = 10; | |
infText.position = positionArray[j]; | |
var tempRect = infoLayer.pathItems.rectangle(infText.top, infText.left, infText.width, infText.height); | |
tempRect.filled = true; | |
tempRect.fillColor = framColor; | |
infText.zOrder (ZOrderMethod.BRINGTOFRONT); | |
//$.writeln ("doc"+i+"_placed"+j+"__"+(j+1)+"/"+pValue) | |
} | |
//別名保存名をとりあえずepsで | |
var removeExtName = doc[i].name.toString().replace(/\..{2,4}$/,"");//拡張子をとる | |
var oldName = removeExtName.replace(/ \[更新済み\]?/,"");// [更新済み]があるならとる | |
var newPath = doc[i].path.toString()+"/"+oldName+"_.eps";//アンダーバー付きのepsに | |
var savePath = new File(newPath); | |
var saveOpt = new EPSSaveOptions(); | |
//ここからeps保存オプション | |
saveOpt.compatibility = Compatibility.ILLUSTRATOR13;//AI CS3 | |
saveOpt.preview = EPSPreview.COLORTIFF;//プレビューTIFFカラー | |
saveOpt.overPrint = PDFOverprint.PRESERVEPDFOVERPRINT;//オーバープリント保持 | |
saveOpt.embedAllFonts = true; | |
saveOpt.embedLinkedFiles = false;//配置画像を含まない | |
saveOpt.includeDocumentThumbnails = true; | |
saveOpt.cmykPostScript = true; | |
saveOpt.compatibleGradientPrinting = false; | |
//saveOpt.flattenOutput = OutputFlattening.PRESERVEAPPEARANCE//プリンタの初期設定値を使用? | |
saveOpt.EPSPostScriptLevelEnum = EPSPostScriptLevelEnum.LEVEL3//ポストスクリプトレベル3 | |
//別名保存、元データは保存せずに閉じる | |
doc[i].saveAs(savePath, saveOpt); | |
doc[i].close(SaveOptions.DONOTSAVECHANGES); | |
}//for doc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment