« 桜と菜の花 | メイン | Behanceを始めてみました。その他、動向など。 »
2014年3月19日
Indesign / 指定ディレクトリ下の*.inddに指定されてインストールされてないフォントを列挙してテキストファイルに書き出す >>Indesign
Indesign で 指定ディレクトリ下の*.inddでフォントが環境下にないものを列挙するスクリプトサンプル
IdCS4,5.5で確認。
目視でフォントリストをみて、エラーのフォントをメモしていくなんてやってられるか、と。ということで以前に作ったもの。ファイルが多いプロジェクトだと役に立つと思う。
This script creates a list of missing fonts in an environment of specified directory under *. Indd in Indesign.
IdCS4,5.5で確認。
目視でフォントリストをみて、エラーのフォントをメモしていくなんてやってられるか、と。ということで以前に作ったもの。ファイルが多いプロジェクトだと役に立つと思う。
This script creates a list of missing fonts in an environment of specified directory under *. Indd in Indesign.
/* JSX Start */ app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;//CS3でのおまじない(ダイアログウインドウの表示許可みたいなもの) F_main(); function F_main() { wObj = app.dialogs.add({ name:"選択してください" }); tmp1 = wObj.dialogColumns.add(); tmp2 = tmp1.radiobuttonGroups.add(); // tmp3_1 = tmp2.radiobuttonControls.add({staticLabel: "ErrList", minWidth:120, checkedState:true}); var wObj_show = wObj.show(); if(wObj_show == false){ //選択ダイアログでキャンセルを押したらここを通る exit(); } var document_open_folder = Folder.selectDialog("Indesignドキュメントのあるフォルダを選択してください"); if (document_open_folder == null){ //フォルダ選択ダイアログでキャンセルを押したらここを通る exit(); } var save_folder = Folder.selectDialog("保存するフォルダを選択してください"); if (save_folder == null){ //フォルダ選択ダイアログでキャンセルを押したらここを通る exit(); } var indd_List = F_findFile(document_open_folder); //関数呼び出し(選択フォルダ以下全てのinddファイル取得) if ( indd_List.length===0 ) { //返り値の配列が0なら alert("Indesignファイルが見つかりませんでした"); exit(); } // if (tmp3_1.checkedState == true){ //★★★PS保存の場合★★★ F_errFonts(indd_List,save_folder); // } alert("終了しました"); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //再帰処理のfunction function F_findFile(document_open_folder) { var indd_List=[]; //返り値用の配列 var all_List = document_open_folder.getFiles(); //フォルダの内容を全て取得 for (var i=0; i < all_List.length; i++) { if(all_List[i] instanceof Folder) { //フォルダなら... var res = F_findFile(all_List[i]); //再帰的呼び出し indd_List=indd_List.concat(res); //返り値を配列に加える(配列の結合) } var all_List_fName = all_List[i].name; if (all_List_fName.match (/\.indd/)) { indd_List.push(all_List[i]); } } return indd_List; //配列を返す } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function F_errFonts(indd_List,save_folder){ var msgs = ""; var PDFfolder_name = save_folder.fsName; //save_folderから保存フォルダのフルパスをとり変数PDFfolder_nameに入れる myFileName = "/" + PDFfolder_name + "/" + "errorfonts_with.txt"; myFileObject = new File(myFileName); myFlag = myFileObject.open("w"); //プログレスバー処理******************************************************* function createProgressBarPanel (){ var pBar = new Window("window", "Err吐き出し中"); pBar.msg = pBar.add("statictext", [12,12,400,32], "処理中..."); pBar.progressBar = pBar.add("progressbar", [12,32,400,54],0,indd_List.length); return pBar; } var pbarPanel = createProgressBarPanel(); var bar_num = 1; //********************************************************************* app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT; //CS3でのおまじない(ダイアログウインドウの表示許可みたいなもの) function readFont() { myDocument = app.activeDocument; for (var i = 0; i < myDocument.fonts.length; i++) { var fontObj = myDocument.fonts[i]; //$.writeln(fontObj.name); if (fontObj.status != FontStatus.INSTALLED) { //var fontName = fontObj.fontFamily + " " + fontObj.fontStyleName; //tmpArray.push(fontObj.name); //errormsg += docFonts[i].fontFamily + '\r'; msgs = msgs + file_name + "\t" + fontObj.fontFamily + "\r"; //$.writeln(fontObj.name); } } } for(j = 0; j < indd_List.length; j++){ app.open(File(indd_List[j])); //ファイルを開く pbarPanel.show();//プログレスバー処理****** var file_name = app.activeDocument.name; //今開いているドキュメントの名前をfile_nameに取得 readFont(); app.activeDocument.close(SaveOptions.no); //ドキュメントを保存しないで閉じる pbarPanel.progressBar.value = bar_num;//プログレスバー処理****** bar_num = bar_num + 1;//プログレスバー処理****** } //forの閉じ pbarPanel.close();//プログレスバー処理****** //alert(msgs); myFileObject.write(msgs); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
現在、この記事はコメントを受け付けておりません。