在InDesign中将所有图像大量导出为单独的JPEG?

时间:2017-03-14 03:29:45

标签: scripting batch-processing adobe-indesign

我是Indesign的新手。我有一个包含Photoshop剪切路径图像的文件。我想导出文件夹中的所有剪切图像。我尝试过“复制链接到”并成功导出原始图像。但是,我不想要原始图像,而是剪切图像。有没有办法让我将所有剪切的图像导出为JPEG而不是原始的链接图像?简而言之,我想在没有背景的情况下导出图像。我希望我有意义。我有大约800-1000张图像,所以批量处理方法将受到高度赞赏。

我从这里的一个帖子中找到了这个脚本,并根据我的需要进行了一些修改。它似乎适用于我的大多数INDD文档,但在其他文档中却失败了。我想知道为什么。我有时会收到错误消息     错误字符串:null不是对象     来源:fileName = File(rect.graphics [0] .itemLink.filePath).name;

我还注意到它跳过一些对象并且不会下载所有图像。我想它会跳过不在矩形中的那些。

test();
function test()
{
var myDoc = app.activeDocument,
apis = myDoc.allPageItems, rect, fileName;

while ( rect = apis.pop() )
{
if ( !(rect instanceof Rectangle) || !rect.graphics[0].isValid ){ continue;}


fileName = File ( rect.graphics[0].itemLink.filePath ).name;
fileName = fileName.replace( /\.[a-z]{2,4}$/i, '.jpg' );


app.jpegExportPreferences.exportResolution = 2400;
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.MAXIMUM;


//give it a unique name
var myFile = new File ("C:/Users/RANFacistol-Mata/Desktop/Image Trial/"+ fileName);


rect.exportFile(ExportFormat.JPG, myFile);
}
}

有没有办法让我修改这个脚本,这样我就不会遍历所有的矩形,而是遍历所有的对象,就像点击下一个按钮enter image description here

一样

然后检查该对象是否包含图像(jpg,tiff,psd,ai,eps)。如果是,那么我将把它导出为上面的脚本。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码段遍历文档中的链接,这将花费上述代码段所花费的时间... 您还可以使用linkType属性获取链接类型(' eps' pdf'等),使用' filePath'每个链接对象的属性..

var theDoc = app.documents.item(0);
var theLinkLen = theDoc.links.length; 
for(var i = 0; i < theLinkLen; ++i)
{
  var link = theDoc.links.item(i);
  alert("link name \"" + link.name + "\"" + " has type \"" + link.linkType  + "\""+ " with filePath \"" + link.filePath + "\"");
}