Indesign 脚本:如何粘贴项目
Indesign script: how to pasteboard items
我有这个脚本可以找到段落样式,将库中的项目放在最后并应用对象样式:
myDoc = app.documents[0];
myLib = app.libraries[0];
myObjectStyle = myDoc.objectStyles.item ("marker");
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "Custom"
var myFound = app.activeDocument.findText(true);
alert (myFound.length);
try {
for (i = 0; i < myFound.length; i++) {
myIcon = myLib.assets.itemByName("winieta_tr").placeAsset (myFound[i].insertionPoints[-2])[0];
myIcon.appliedObjectStyle = myObjectStyle;
// myFound[i].remove ();
}
}
catch (e) {alert (e.message)}
我不知道如何更改它,所以这些项目不是从图书馆获得的,而是从粘贴板中获得的 - 任何帮助将不胜感激。
是否可以按名称查找文档中的元素,就像库元素一样?
Is it possible to find elements that are in the document by name, as it is with library elements?
您可以将脚本标签应用于粘贴板上的框架,为其命名。
是的,您可以按名称查找对象(您可以在图层面板中分配该名称)只需使用
myDoc.pageItems.itemByName("myItemName");
如果您在特定跨页上查找相同的东西(例如,如果多个跨页上的多个项目具有相同的名称),您可以使用
myDoc.spreads[0].pageItems.itemByName("myItemName");
或者如果您只想使用当前活跃的点差
app.activeWindow.activeSpread.pageItems.itemByName("myItemName");
请确保不要使用页面来解决粘贴板上的页面项目,因为粘贴板不属于任何页面。
我有这个脚本可以找到段落样式,将库中的项目放在最后并应用对象样式:
myDoc = app.documents[0];
myLib = app.libraries[0];
myObjectStyle = myDoc.objectStyles.item ("marker");
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "Custom"
var myFound = app.activeDocument.findText(true);
alert (myFound.length);
try {
for (i = 0; i < myFound.length; i++) {
myIcon = myLib.assets.itemByName("winieta_tr").placeAsset (myFound[i].insertionPoints[-2])[0];
myIcon.appliedObjectStyle = myObjectStyle;
// myFound[i].remove ();
}
}
catch (e) {alert (e.message)}
我不知道如何更改它,所以这些项目不是从图书馆获得的,而是从粘贴板中获得的 - 任何帮助将不胜感激。
是否可以按名称查找文档中的元素,就像库元素一样?
Is it possible to find elements that are in the document by name, as it is with library elements?
您可以将脚本标签应用于粘贴板上的框架,为其命名。
是的,您可以按名称查找对象(您可以在图层面板中分配该名称)只需使用
myDoc.pageItems.itemByName("myItemName");
如果您在特定跨页上查找相同的东西(例如,如果多个跨页上的多个项目具有相同的名称),您可以使用
myDoc.spreads[0].pageItems.itemByName("myItemName");
或者如果您只想使用当前活跃的点差
app.activeWindow.activeSpread.pageItems.itemByName("myItemName");
请确保不要使用页面来解决粘贴板上的页面项目,因为粘贴板不属于任何页面。