I don't know why and how you write error log, so I only add a single alert after all. "xmpString" and "XMP library" are two different methods, you only need one of then. #target illustrator var inputFolder = Folder.selectDialog("Select a folder contains '*.eps' files "); if (inputFolder) { var fileList = inputFolder.getFiles('*.eps'), fontsInfo = []; loadXMPLibrary(); for (var i = 0; i < fileList.length; i++) { if (fileList instanceof File && fileList.hidden == false) { fontsInfo.push(getFontsInfo(fileList)); } } unloadXMPLibrary(); } var Loginfo = new File(inputFolder + '/Font.info.txt'); Loginfo.open('w', 'TEXT', '????'); var info = fontsInfo.join('\n\n'); Loginfo.write(info); Loginfo.close(); if (/(Open Type|TrueType)/.test(info)) { alert('Open Type / TrueType font found, see log file for details!') } function getFontsInfo(file) { var arr = ['File: ' + decodeURI (file.name)], xmpFile, oXmp, fontNumber, i, path, fontname, fonttype, ns = 'http://ns.adobe.com/xap/1.0/t/pg/'; xmpFile = new XMPFile(file.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ); oXmp = xmpFile.getXMP(); //Returns an XMPMeta object fontNumber = oXmp.countArrayItems(ns, 'xmpTPg:Fonts'); xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY); if (fontNumber) { // if there's at least 1 font, proceed for (i = 1; i <= fontNumber; i++) { path = XMPUtils.composeArrayItemPath(ns, 'xmpTPg:Fonts', i); fontname = oXmp.getStructField(ns, path, XMPConst.TYPE_FONT, 'fontName'); fonttype = oXmp.getStructField(ns, path, XMPConst.TYPE_FONT, 'fontType'); arr.push([i, '. ', fontname, '-', fonttype].join('')); } } return arr.join('\n'); } function loadXMPLibrary() { if (!ExternalObject.AdobeXMPScript) { try { ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript'); } catch (e) { alert('Unable to load the AdobeXMPScript library!'); return false; } } return true; } function unloadXMPLibrary() { if (ExternalObject.AdobeXMPScript) { try { ExternalObject.AdobeXMPScript.unload(); ExternalObject.AdobeXMPScript = undefined; } catch (e) { alert('Unable to unload the AdobeXMPScript library!'); } } }
... View more