ドキュメントサイズの変更 続き
躓いた。
CS4なのにドキュメントの原点、すべて左上になってやんの。
だから昨日のスクリプト走らせたら、アートボードが既存オブジェクトの上にいっちゃう(^^;
そこで改善。
改善ポイントとしては、フォルダを指定できるようにしたことと、
処理の前にドキュメントの原点を左下に移動しておいたこと。
アートボードのサイズを、先に描画した四角形と同じにすればいいのだから、ファイルのcropBoxに四角形のvisibleBoundsを入れてやればいいことにようやく気付いたのでそのようにした。
最後に、saveのとこでsaveASって書いてて詰まってて、Twitterでフォロワー様に助けていただいた。
いつも本当にお世話になっております。
その後、やはりsaveAsで別フォルダに保存したくなり、VoostOn様の記事のお世話になった。
var folderObj = Folder.selectDialog("Illustratorファイルの入っているフォルダを選択してください"); var folder = Folder.selectDialog("保存するフォルダを選択してください"); if (folderObj != null){ fileList = new Array; fileList = folderObj.getFiles("*.ai"); for (f = 0 ; f <= fileList.length-1 ; f++){ var fileObj = new File(fileList[f]); open(fileObj); flag = fileObj.open(); if (flag == true){ var my_Doc = app.activeDocument; var saveOptions = new IllustratorSaveOptions(); saveOptions.compatibility = Compatibility.ILLUSTRATOR14;// バージョン :CS4 saveOptions.fontSubsetThreshold = 100;// 使用している文字の割合が次より少ない場合サブセットにする。 saveOptions.pdfCompatible = true;// PDF互換ファイルを作成 saveOptions.embedICCProfile = true;// ICCプロファイルを埋め込む 【10 or later】 saveOptions.embedLinkedFiles = false;// 配置した画像を含む 【7 or later】 saveOptions.compressed = false;// 圧縮を使用 saveOptions.flattenOutput = OutputFlattening.PRESERVEAPPEARANCE;// アピアランスを保持 / パスを保持:PRESERVEPATHS saveOptions.overprint = PDFOverprint.PRESERVEPDFOVERPRINT;// オーバープリントを保持 / オーバープリントを破棄:DISCARDPDFOVERPRINT ex_artboard (); //ファイル名に手を加えたい場合 /* var namecount = (fileObj.name).lastIndexOf("."); // fileObj.nameの値で"."の位置を取得 var fname = (fileObj.name).substr(0, namecount); var savefile = new File(folder.fsName+"/"+fname+"_v10.ai");// バージョン名と拡張子は適宜変更 */ //ファイル名を変更しない場合 var savefile = new File(folder.fsName); my_Doc.saveAs(savefile,saveOptions); activeDocument.close(SaveOptions.DONOTSAVECHANGES); } } } alert("処理が完了しました。スクリプトを終了します。"); function ex_artboard(){ var docObj = app.activeDocument; var o = docObj.rulerOrigin; var my_origin = [o[0], o[1]]; docObj.rulerOrigin = [0, 0]; var mm = 2.834645/1; var recObj = docObj.pathItems.rectangle(-1.5*mm,-1.5*mm,28*mm,-28*mm); recObj.filled = false; recObj.stroked = false; docObj.cropBox = recObj.visibleBounds; docObj.rulerOrigin = my_origin; }