I have written an InDesign javascript script that moves me all images (respectively the frames of the images) into a new layer “Webbilder” created by the script (if not existing).
How can I customize it so that the images are not moved but copied?
This is my current script:
JavaScript
x
45
45
1
if (app.documents.length == 0) {
2
alert("Es ist kein Dokument geöffnet, das Skript kann nicht ausgeführt werden.");
3
console.log("Es ist kein Dokument geöffnet, das Skript kann nicht ausgeführt werden.")
4
exit;
5
}
6
copyImages();
7
8
function copyImages() {
9
var myDoc = app.activeDocument;
10
var myImageFrameArray = new Array();
11
var myPageItems = myDoc.allPageItems;
12
var myNewLayer;
13
try {
14
myNewLayer = myDoc.layers.add({name:"Webbilder"})
15
} catch (e) {
16
myNewLayer = myDoc.layers.item("Webbilder");
17
}
18
19
for (i = 0; i < myPageItems.length; i++) {
20
var myFrames = myPageItems[i];
21
if (myFrames == "[object Group]") {
22
var myGroupFrames = myFrames.allPageItems;
23
for (j = 0; j < myGroupFrames.length; j++) {
24
var myArrayGroupFrames = myGroupFrames[j];
25
if (myArrayGroupFrames instanceof Rectangle || myArrayGroupFrames instanceof Polygon || myArrayGroupFrames instanceof Oval) {
26
myImageFrameArray.push(myArrayGroupFrames);
27
}
28
}
29
}
30
else if (myFrames instanceof Rectangle || myFrames instanceof Polygon || myFrames instanceof Oval) {
31
myImageFrameArray.push(myFrames);
32
}
33
}
34
35
for (g = 0; g < myImageFrameArray.length; g++) {
36
var myArrayImageFrameArray = myImageFrameArray[g];
37
try {
38
var myLinkedItem = myArrayImageFrameArray.pageItems[0];
39
var myLinkName = myLinkedItem.itemLink.name;
40
myArrayImageFrameArray.itemLayer = "Webbilder";
41
} catch (e) {}
42
}
43
alert("Skript erfolgreich ausgefuehrt.")
44
}
45
Does anyone have any ideas, or do I need to change my approach completely?
Thanks already in advance for the feedback.
Noel
Advertisement
Answer
Try to change the line:
JavaScript
1
2
1
myArrayImageFrameArray.itemLayer = "Webbilder";
2
with this:
JavaScript
1
2
1
myArrayImageFrameArray.duplicate().itemLayer = "Webbilder";
2