Adobe 在为链接生成缺少的documentId和instanceId后,需要为.indd meta info添加documentId和instanceId标记

Adobe 在为链接生成缺少的documentId和instanceId后,需要为.indd meta info添加documentId和instanceId标记,adobe,adobe-indesign,extendscript,xmp,Adobe,Adobe Indesign,Extendscript,Xmp,使用ExtendScript,我正在更新Indesign(.indd)文件链接缺少的DocumentId和InstanceId,使用处的参考代码。这可以正常工作,并正确更新缺少的每个链接DoumentId和InstanceId。但我现在面临的问题是,.indd文件本身有元信息,其中新生成的DocumentId和InstanceId缺少特定链接 请参阅.indd文件的以下元信息,其中包含四个资源,以便更好地理解。这里有四个资源:两个.psd文件和两个.ai文件。.indd文件元信息包含两个.ai资

使用
ExtendScript
,我正在更新Indesign(
.indd
)文件链接缺少的
DocumentId
InstanceId
,使用处的参考代码。这可以正常工作,并正确更新缺少的每个链接
DoumentId
InstanceId
。但我现在面临的问题是,
.indd
文件本身有元信息,其中新生成的
DocumentId
InstanceId
缺少特定链接

请参阅
.indd
文件的以下元信息,其中包含四个资源,以便更好地理解。这里有四个资源:两个
.psd
文件和两个
.ai
文件。
.indd
文件元信息包含两个
.ai
资源的
,其中其他两个
.psd
资源缺少这些标记(
)。即使在为.psd文件生成缺少的
DocumentId
InstanceId
之后,在这两个资源的.indd文件meta-info中,这两个标记
仍然缺少。即使在
.indd
文件元信息中,我如何更新这些丢失链接的DocumentId和InstanceId


参考流
300
300
英寸
file:///Users/superadmin/Downloads/266x165mm_VPA_WS_SP_M-1F/Links/6604_RGB.psd
参考流
72
72
英寸
file:///Users/superadmin/Downloads/266x165mm_VPA_WS_SP_M-1F/Links/Silver_001_RGB.psd
参考流
72
72
英寸
uuid:d34cbf16-4c87-4344-a0db-6cf67ffe6f84
xmp.did:fd9d95eb-fe2d-4fca-92a2-1906d98a10f4
file:///Users/superadmin/Downloads/266x165mm_VPA_WS_SP_M-1F/Links/bkgd_rgb_en.ai
参考流
72
72
英寸
uuid:afd031b3-018a-434a-989f-c0e35ff0cebb
xmp.did:f4cbc476-258f-4807-8734-d8afc200fbfb
file:///Users/superadmin/Downloads/266x165mm_VPA_WS_SP_M-1F/Links/bax_logo_whitebox_cmyk.ai
当以下任一情况发生时,
中的
问题未反映在
indd
文件中:

  • 通过单击InDesign链接调色板中的“更新链接”手动更新链接
  • 或者根本不更新链接状态
将缺少的
DocumentID
InstanceID
添加到链接资源后,需要通过脚本以编程方式更新InDesign链接状态。您可以利用以下功能执行此操作:

/**
*更新状态为过期的所有文档链接。
*@param{Object}doc-对要更新的.indd的引用。
*/
函数updateOutDatedLink(文档){
对于(变量i=0,len=doc.links.length;i

script.jsx

下面是一个完整的工作版本,它将向相关链接添加任何缺少的
DocumentID
和/或
InstanceID
,然后在
.indd
中更新其状态

#目标indesign
$.level=0;
//如果没有打开文档,则发出警告。
如果(!app.documents.length){
警报('打开文档并重试','缺少文档',false);
退出();
}
var doc=app.activeDocument;
/**
*加载AdobeXMPScript库。
*@如果库加载成功,则返回{Boolean}True,否则返回false。
*/
函数loadXMPLibrary(){
如果(!ExternalObject.AdobeXMPScript){
试一试{
ExternalObject.AdobeXMPScript=新的ExternalObject('lib:AdobeXMPScript');
}捕获(e){
警报('加载AdobeXMPScript库失败\n'+e.message,'错误',为真');
返回false;
}
}
返回true;
}
/**
*检查所有Indesign链接的状态,如果状态不正常,则退出。
*@param{Object}doc-要检查的对.indd的引用。
*@如果所有链接的状态都正常,则返回{Boolean}True,否则返回false。
*/
功能链接StatusCheck(文档){
对于(变量i=0,len=doc.links.length;i