Copy link to clipboard
Copied
Hi,
The image frame used to be removed from the InDesign document after the images had been placed in the newly added frames on another page. Below you will find the script I used to remove the image. However, I have been unable to remove existing images from the Indesign document using the script.
var doc = app.activeDocument;
var page = doc.pages[i];
var pageHeight = page.bounds[2] - page.bounds[0];
// Loop through all text frames on the page
for (var j = 0; j < page.textFrames.length; j++) {
var frame = page.textFrames[j];
var pageValue = app.activeWindow.activePage + 1;
var imageNamesArray = [];
imageNamesArray.splice(0, imageNamesArray.length);
// Loop through each item on the active page
for (var m = 0; m < page.allPageItems.length; m++) {
// Get a reference to the current page item
var item = page.allPageItems[m];
// Check if the current item is an image and log its name
if (item instanceof Image) {
var imageName = item.itemLink.name;
if (imageName.length > 0) {
imageNamesArray.push(imageName);
}
}
}
}
var frameWidth = 100;
var frameHeight = 50;
var frameX = 60;
var frameY = 640;
for (var k = 0; k < imageNamesArray.length; k++) {
// Get the path to the image file
var imagePath = FolderPath() + "/" + imageNamesArray[k];
var activePage = app.activeWindow.activePage;
var activePageNum = activePage.documentOffset;
var currentFrameX = frameX + k * (frameWidth + 10);
var newFrame = activePage.textFrames.add({
geometricBounds: [frameY, currentFrameX, frameY + frameHeight, currentFrameX + frameWidth]
});
// Place the image in the new text frame
var placedItem = newFrame.place(File(imagePath));
newFrame.fit(FitOptions.proportionally);
// Remove the original image frame
var item = placedItem.parent;
if (item instanceof Image) {
var parentFrame = item.parent;
parentFrame.remove();
}
}
Not sure if this is what you are trying to do, but it deletes the original:
app.scriptPreferences.measurementUnit = MeasurementUnits.POINTS;
var doc = app.activeDocument;
//page 1
var page = doc.pages[0];
//var pageHeight = page.bounds[2] - page.bounds[0];
var api = page.allPageItems
var frameWidth = 100;
var frameHeight = 50;
var frameX = 60;
var frameY = 640;
var item, imagePath, activePage, activePageNum, currentFrameX, newFrame;
for (var i = 0; i < api.length; i++){
//activePage = app
...
Copy link to clipboard
Copied
I'm not a scripter ---- but had a quick look based on my limited knowledge
I've not tested - basically because I have no idea what you expect to happen with script.
var doc = app.activeDocument;
var page = doc.pages[0]; // replace 0 with the index of the desired page
var pageHeight = page.bounds[2] - page.bounds[0];
var imageNamesArray = [];
for (var m = 0; m < page.allPageItems.length; m++) {
// Get a reference to the current page item
var item = page.allPageItems[m];
if (item instanceof Image) {
var imageName = item.itemLink.name;
if (imageName.length > 0) {
imageNamesArray.push(imageName);
}
}
}
var frameWidth = 100;
var frameHeight = 50;
var frameX = 60;
var frameY = 640;
for (var k = 0; k < imageNamesArray.length; k++) {
// Get the path to the image file
var imagePath = "/path/to/image/folder/" + imageNamesArray[k];
var activePage = app.activeWindow
Copy link to clipboard
Copied
Hi @Barathi , The if statement at the bottom of your script is returning false, so nothing gets removed. Also, youāve declared the item variable again so itās no longer referring to the image in your loopānow it is the parent frame of the newly placed image.
// Remove the original image frame
// item is not the original image, itās now the parent frame of the newly placed image
// placedItem.parent is not an image, so the if statement returns false
var item = placedItem.parent;
if (item instanceof Image) {
var parentFrame = item.parent;
parentFrame.remove();
}
Copy link to clipboard
Copied
Not sure if this is what you are trying to do, but it deletes the original:
app.scriptPreferences.measurementUnit = MeasurementUnits.POINTS;
var doc = app.activeDocument;
//page 1
var page = doc.pages[0];
//var pageHeight = page.bounds[2] - page.bounds[0];
var api = page.allPageItems
var frameWidth = 100;
var frameHeight = 50;
var frameX = 60;
var frameY = 640;
var item, imagePath, activePage, activePageNum, currentFrameX, newFrame;
for (var i = 0; i < api.length; i++){
//activePage = app.activeWindow.activePage;
//activePageNum = activePage.documentOffset;
//check if the page item is an image
if (api[i] instanceof Image) {
//the file path of the image
imagePath = api[i].itemLink.filePath;
currentFrameX = frameX + i * (frameWidth + 10);
newFrame = activePage.textFrames.add({
geometricBounds: [frameY, currentFrameX, (frameY + frameHeight), (currentFrameX + frameWidth)]
});
newFrame.place(File(imagePath))
newFrame.fit(FitOptions.proportionally);
api[i].parent.remove()
}
};
app.scriptPreferences.measurementUnit = AutoEnum.AUTO_VALUE;