【发布时间】:2014-05-21 11:12:50
【问题描述】:
我需要一点帮助。我想要一个脚本,将所有子文件夹中的所有 AI 文件转换为 PDF 并将它们放在根目录的单个文件夹中,我希望它跳过任何名为“资源”的文件夹。我找到了一个脚本,它主要完成我需要它做的事情,并且我已经对其进行了进一步修改以满足我们的确切需求。不过,我正在努力解决其中的两个部分。具体来说,第 33 行和第 80 行是我现在的问题。
#target illustrator
main();
//
function main() {
var topLevel = Folder.selectDialog( 'Select the top level folder to start converting AI files to PDFX files' );
var proofFolder = new Folder( topLevel + '/Proofs2/');
proofFolder.create();
if ( topLevel != null ) {
processDocs( recursiveFolders( topLevel, /\.ai$/i ), getPDFOptions() );
};
};
//
function processDocs( aiFiles, opts ) {
var i, baseName, doc, saveFile;
for ( i = 0; i < aiFiles.length; i++ ) {
doc = app.open( aiFiles[i] );
baseName = decodeURI( doc.name.match( /(.*)\.[^\.]+$/ )[1] );
//这是第 33 行// saveFile = File(proofFolder.path + baseName + '.pdf');
doc.saveAs( saveFile, opts );
doc.close( SaveOptions.DONOTSAVECHANGES );
};
};
//
function getPDFOptions() {
var pdfSaveOpts = new PDFSaveOptions();
pdfSaveOpts.acrobatLayers = true;
pdfSaveOpts.colorBars = false;
pdfSaveOpts.colorCompression = CompressionQuality.AUTOMATICJPEGHIGH;
pdfSaveOpts.compressArt = true;
pdfSaveOpts.embedICCProfile = true;
pdfSaveOpts.enablePlainText = true;
pdfSaveOpts.generateThumbnails = true;
pdfSaveOpts.optimization = true;
pdfSaveOpts.pageInformation = true;
pdfSaveOpts.preserveEditability = true;
pdfSaveOpts.pDFXStandard = PDFXStandard.PDFX1A2001;
pdfSaveOpts.viewAfterSaving = false;
return pdfSaveOpts;
};
//
function recursiveFolders( fold, exp ) {
var fileList = Array(); // Our matching files…
getFiles( fold, exp, fileList );
return fileList;
};
//
function getFiles( fold, exp, array ) {
//这是第 80 行 // if (Folder.name !== /\Resources$/){
var i, temp;
temp = Folder( fold ).getFiles(); // All files and folders…
for ( i = 0; i < temp.length; i++ ) {
if ( temp[i] instanceof File && RegExp( exp ).test( temp[i].fsName ) ){
array.push( temp[i] );
};
if ( temp[i] instanceof Folder ) {
getFiles( temp[i].fsName, exp, array );
};
};
return array;
};
};
【问题讨论】:
-
Errrr...没有行号,使得第 33 行和第 80 行很难找到...
-
如何将代码与行号一起粘贴?
-
如果在 Linux 上,执行“cat -n yourfile > file2paste”并粘贴。否则,请在有问题的代码中进行注释。
-
好的,我在这两行中添加了注释。
-
根据
proofFolder.path的值,您可能需要在它和文件名之间使用分隔符,例如 Mac OSX 上的“/”或 Windows 中的第 33 行的“\”。或者尝试将其硬编码为“fred.pdf”现在看看是否有效。
标签: javascript directory adobe-illustrator extendscript