/* テキストエクスポート.jsx * Skyward Design JavaScript Library for Photoshop * PSDファイル内のテキストレイヤーの内容を、テキストファイルに書き出します。 * * Version 1.0.2 * Copyright (C) 2010 Hideki Abe */ (function(activeDocument) { // オプション設定 var options = { // 改行 linefeed : String.fromCharCode(13), // セパレート文字列 separator : "------------------------------------------------------", // 出力レイヤー接頭語 // Version 1.0.2では未使用 targetname : "w_" }; function main() { var fileName = File.saveDialog("保存するファイル名を入れてください"); if(fileName) { // ファイルを作成し、テキストレイヤー書き出し処理へ var file = new File(fileName); var openFlag = file.open("w"); if(openFlag) { // ファイル情報生成 var date = new Date(); var fileInfo = activeDocument.name + options.linefeed + "Generated: " + date + options.linefeed + options.linefeed + options.linefeed + "********** Output Start **********" + options.linefeed + options.linefeed; file.write(fileInfo); // レイヤー出力 _scanLayer(file, activeDocument); file.close(); alert("書き出しが完了しました。"); } else { alert("ファイルが開けませんでした。"); } } else { alert("処理を中止します。"); } } // レイヤースキャン・書き出し function _scanLayer(file, target, layerpath) { // Layersオブジェクト取得 var targetLayers = target.layers; var nLayer = targetLayers.length; var path = layerpath || "root"; for(var i = 0; i < nLayer; i++) { if(targetLayers[i].typename === "LayerSet") { // レイヤーセットの場合 // レイヤーセット情報を出力後再帰処理 var tmpPath = path + " > " + targetLayers[i].name; var text = options.separator + options.linefeed + "Layerset: " + targetLayers[i].name + options.linefeed + " Path: " + tmpPath + options.linefeed + options.separator + options.linefeed; file.write(text); _scanLayer(file, targetLayers[i], tmpPath); } else if(targetLayers[i].kind === LayerKind.TEXT) { // テキストレイヤーの場合 var text = targetLayers[i].textItem.contents; file.write(text + options.linefeed + options.linefeed); } } file.write(options.linefeed); } // Dispatch main(); })(activeDocument);