我在这里要做的只是打开一个InDesign 2018 CC文件,唯一地拉出文本(这里我选择从InDesign应用程序端的命名标签窗口中的XML标签“ Title”中获取内容),将其保存到txt文件,然后关闭InDesign文档。我正在使用Adobe InDesign CC 2018(13.064)在Extendscript应用程序中工作。我只需要将基于某些内容的某些命名数据(文本框,xmltags,pageitems等)的内容仅推入txt文件即可,但要通过数据持有者的名字。但是xmltags是我可以在InDesign应用程序中命名的唯一对象(图层除外),并且图层由于其他原因无法工作。因此,我无法引用xml标记的内容。请帮忙。
注意:
到目前为止,我的代码:
app.open(File("C:/Users/Sean/Desktop/New folder/va tech 2.indd"), true);
myArticles = Title.toString();
//THIS ATTEMPT WON'T WORK EITHER AS RPLCMNT FOR LINE ABOVE: myArticles= app.activeDocument.xmlItems.item;
myArticles.exportFile(ExportFormat.textType, new File("/C/Users/Sean/Desktop/New folder/test.txt"), false);
app.documents.everyItem().close(SaveOptions.NO);
答案 0 :(得分:0)
var main = function() {
var doc, root, xes, n, nXE, st, xc, strs = [],
f = File ( Folder.desktop+"/contents.txt" );
try {
//NEED TO CHANGE THE URL. Ex: some/url > /Users/user/Desktop/foo.indd
doc = app.open ( File ( "some/url" ) );
}
catch(err){
alert(err.message);
return;
}
if ( !doc ) {
alert("You need an open document" );
return;
}
root = doc.xmlElements[0];
xes = root.evaluateXPathExpression("//Title");
n = xes.length;
while ( n-- ) {
nXE = xes[n];
xc = nXE.xmlContent;
if ( xc instanceof Story ) {
strs.push( xc.contents );
}
}
if ( strs.length ) {
f.open('w');
f.write ( strs.reverse().join("\r") );
f.close();
}
}
var u;
app.doScript ( "main()",u,u,UndoModes.ENTIRE_SCRIPT, "The Script" );