Adobe 检查InDesign链接是否缺少XMP-DocumentID和InstanceID
我正在使用ExtendScript处理InDesignCC 2019中Adobe 检查InDesign链接是否缺少XMP-DocumentID和InstanceID,adobe,metadata,adobe-indesign,extendscript,xmp,Adobe,Metadata,Adobe Indesign,Extendscript,Xmp,我正在使用ExtendScript处理InDesignCC 2019中.indd文件的元数据信息 我的要求是,我需要访问与.indd文件关联的所有单个链接元数据,并查看是否有任何链接元数据丢失DocumentID和InstanceID。如果任何链接元数据没有DocumentID和/或InstanceID属性的值,那么我需要显示与该链接关联的文件名,表明该特定文件缺少DocumentID和/或InstanceID 我使用下面的脚本访问.indd文件的元数据 $。级别=0 //加载XMP库 函数lo
.indd
文件的元数据信息
我的要求是,我需要访问与.indd
文件关联的所有单个链接元数据,并查看是否有任何链接元数据丢失DocumentID
和InstanceID
。如果任何链接元数据没有DocumentID
和/或InstanceID
属性的值,那么我需要显示与该链接关联的文件名,表明该特定文件缺少DocumentID
和/或InstanceID
我使用下面的脚本访问.indd
文件的元数据
$。级别=0
//加载XMP库
函数loadXMPLibrary(){
如果(!ExternalObject.AdobeXMPScript){
请尝试{ExternalObject.AdobeXMPScript=newexternalobject('lib:AdobeXMPScript');}
catch(e){alert('无法加载AdobeXMPScript库!');返回false;}
}
返回true;
}
var myFile=app.activeDocument.fullName;
var myXmp=null;
//检查库和文件
if(loadXMPLibrary()&&myFile!==null){
xmpFile=新的xmpFile(myFile.fsName、XMPConst.FILE\u INDESIGN、XMPConst.OPEN\u用于更新);
myXmp=xmpFile.getXMP();
$.writeln(xmpFile.getPacketInfo());
}
if(myXmp){
$.writeln(myXmp);
$.writeln(XMPFile.getFormatInfo(XMPConst.FILE_INDESIGN));
}
有谁能帮我进一步做这件事吗?一旦你从链接中获得了XMP,即
xmpFile.getXMP()
,你就需要:
DocumentID
和InstanceID
将与架构名称空间相关联,其描述如下:
NS\u XMP\u MM
用于XMP数字资产管理架构的XML命名空间
例如,要获取DocumentID
,您将执行以下操作:
var documentID=allXMP.getProperty(XMPConst.NS_XMP_MM,'documentID',XMPConst.STRING);
解决方案: 下面的要点(example.jsx)执行以下操作:
.indd
文件是否打开,如果没有打开,则通知用户
DocumentID
和InstanceID
,并将其值记录到JavaScript控制台
DocumentID
和/或InstanceID
的任何链接资产,将显示一个警报对话框,指示链接资产的名称和路径
$。级别=0;
//如果没有打开文档,则发出警告。
如果(!app.documents.length){
警报('打开文档并重试','缺少文档',false);
退出();
}
var doc=app.activeDocument;
//加载XMP库
函数loadXMPLibrary(){
如果(!ExternalObject.AdobeXMPScript){
试一试{
ExternalObject.AdobeXMPScript=新的ExternalObject('lib:AdobeXMPScript');
}捕获(e){
警报('加载AdobeXMPScript库失败\n'+e.message,'错误',为真');
返回false;
}
}
返回true;
}
//检查所有链路状态是否正常。
功能链接StatusCheck(文档){
对于(变量i=0,len=doc.links.length;i