Scripting 使用脚本将艺术板导出为PNG时设置分辨率

Scripting 使用脚本将艺术板导出为PNG时设置分辨率,scripting,adobe-illustrator,extendscript,Scripting,Adobe Illustrator,Extendscript,很抱歉,这与最近的帖子非常相似,但我在任何地方都找不到解决方案。我已经创建了一个简单的脚本,在一个开放的illustrator文档中循环遍历每个艺术板,并将其导出为一个单独的PNG文件。除了我想将分辨率设置为150 dpi,而不是默认的72 dpi之外,一切都正常。这是一个可以在手动导出为PNG时设置的选项,但我似乎无法在代码中的PNG选项中设置它,尽管脚本运行时没有错误,但它忽略了分辨率设置。有人能告诉我怎么做吗,非常感谢。代码如下: var doc = app.activeDocument;

很抱歉,这与最近的帖子非常相似,但我在任何地方都找不到解决方案。我已经创建了一个简单的脚本,在一个开放的illustrator文档中循环遍历每个艺术板,并将其导出为一个单独的PNG文件。除了我想将分辨率设置为150 dpi,而不是默认的72 dpi之外,一切都正常。这是一个可以在手动导出为PNG时设置的选项,但我似乎无法在代码中的PNG选项中设置它,尽管脚本运行时没有错误,但它忽略了分辨率设置。有人能告诉我怎么做吗,非常感谢。代码如下:

var doc = app.activeDocument;;//Gets the active document
var fileName = doc.name.slice(0, 9);//Gets the G Number
var numArtboards = doc.artboards.length;//returns the number of artboards in the document
var filePath = (app.activeDocument.fullName.parent.fsName).toString().replace(/\\/g, '/');

var options = new ExportOptionsPNG24();

for (var i = 0; i < numArtboards; i++ ) {
    doc.artboards.setActiveArtboardIndex( i ); 

options.artBoardClipping = true;  
options.matte = false;
options.horizontalScale = 100;
options.verticalScale = 100;  
options.transparency = true;  

var artboardName = doc.artboards[i].name;
//$.writeln("artboardName= ", artboardName);
    var destFile = new File(filePath + "/" + fileName + " " +  artboardName + ".png");
    //$.writeln("destFile= ",destFile);
      doc.exportFile(destFile,ExportType.PNG24,options);
}
var doc=app.activeDocument//获取活动文档
var fileName=doc.name.slice(0,9)//获取G数
var numArtboards=doc.artboards.length//返回文档中的艺术板数
var filePath=(app.activeDocument.fullName.parent.fsName).toString().replace(/\\\/g,'/');
var options=新的导出选项PNG24();
对于(var i=0;i
在做了一些挖掘之后,我发现如果使用imageCapture,可以设置分辨率。下面是新脚本。感谢Carlosanto通过Adobe论坛提供此链接

var doc=app.activeDocument//获取活动文档
var fileName=doc.name.slice(0,9)//获取G数
var numArtboards=doc.artboards.length//返回文档中的艺术板数
var filePath=(app.activeDocument.fullName.parent.fsName).toString().replace(/\\\/g,'/');
var options=新的ImageCaptureOptions();
对于(var i=0;i
options.resolution=150?另一个选择可能是将图像放大208.33%(但我意识到这样做会带来其他潜在问题)
var doc = app.activeDocument;;//Gets the active document
var fileName = doc.name.slice(0, 9);//Gets the G Number
var numArtboards = doc.artboards.length;//returns the number of artboards in the document
var filePath = (app.activeDocument.fullName.parent.fsName).toString().replace(/\\/g, '/');
var options = new ImageCaptureOptions();


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); 
}