如何解决返回文件夹路径 Illustrator jsx 在 illustrat CC2018 到 2021 中的不同结果
我有几个长期存在的脚本,它们在过去几年中运行良好。但是,当我在较新版本(illustrator 2019 以后)中运行脚本时,完全相同的一段代码返回不同的结果,这导致脚本失败。这是导致问题的代码:
var doc = app.activeDocument;//Gets the active document
var fileName = doc.name.slice(0,9);//Gets the G Number
$.writeln('thisfile ',fileName)
var numArtboards = doc.artboards.length;//returns the number of artboards in the document
var folderPath = (doc.fullName.parent.fsName.replace(/\\/g,'/'))
$.writeln('folderPath ',folderPath)
在 illustrator CC 2018 中,输出控制台返回以下内容:
thisfile G0037_21X
folderPath /Users/bobhaslett/Documents/MF1/2021/01 January 2021/13:01:2021
这是我所期望的,并且可以与脚本的其余部分一起使用。但是,如果我尝试使用 Illustrator 2021 运行相同的代码,则会出现以下错误:
Starting /Users/bobhaslett/Documents/MF1/2021/01 January 2021/13:01:2021/ExportArtboards/ExportArtboards v0.1.4.jsx in target: illustrator-25.064 and engine: main.
Runtime Error: Error Code# 21: null is not an object @ file '~/Documents/MF1/2021/01%20January%202021/13:01:2021/ExportArtboards/ExportArtboards%20v0.1.4.jsx' [line:7,col:1]
我真的被困在这里,希望得到任何帮助
谢谢
这是要求的完整脚本
//Version 0.1.4
var doc = app.activeDocument;//Gets the active document
var fileName = doc.name.slice(0,folderPath)
//var folderPath = (app.activeDocument.fullName.parent.fsName).toString().replace(/\\/g,'/');
var options = new ImageCaptureOptions();
var filePath = folderPath + "/ImageSet";
$.writeln(filePath)
var folder = new Folder(filePath);
if (!folder.exists) {
folder.create()
}
//Loop through every item on the page checking for text frames
for (var i = 0; i < doc.pageItems.length; i++) {
var item = doc.pageItems[i];
if (item.constructor.name == "TextFrame") {
try {
checkText(item);
}
catch (e) { }
}
}
//Checks text for smart puctuation
function checkText(item) {
//var txt = item.contents.replace("“","‘");
var txt = item.contents.replace(/n't/g,"n’t")
item.contents = txt;
var txt = item.contents.replace(/'r/g,"’r")
item.contents = txt;
var txt = item.contents.replace(/'d/g,"’d")
item.contents = txt;
var txt = item.contents.replace(/'l/g,"’l")
item.contents = txt;
var txt = item.contents.replace(/'s/g,"’s")
item.contents = txt;
var txt = item.contents.replace(/'m/g,"’m")
item.contents = txt;
var txt = item.contents.replace(/s'/g,"s’")
item.contents = txt;
}
for (var i = 0; i < numArtboards; i++) {
doc.artboards.setActiveArtboardIndex(i);
var activeAB = doc.artboards[doc.artboards.getActiveArtboardIndex()];
options.artBoardClipping = true;
options.resolution = 150;
options.antiAliasing = true;
options.matte = false;
options.horizontalScale = 100;
options.verticalScale = 100;
options.transparency = true;
var artboardName = doc.artboards[i].name;
var destFile = new File(filePath + "/" + fileName + " " + artboardName + ".png");
doc.imageCapture(destFile,activeAB.artboardRect,options);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。