I reached to this code by chat GPT , works as a charm
----------------------------------------------------------------------------------
var doc = app.activeDocument;
// Create the main dialog
var dialog = app.dialogs.add({name: "Replace Images on Selected Pages"});
var result = dialog.dialogColumns.add().staticTexts.add({
staticLabel: "Enter page numbers (comma-separated) and click OK to select the image."
});
// Add a text field to input page numbers
var pageNumbersField = dialog.dialogColumns.add().textEditboxes.add({
editContents: "",
minWidth: 200,
staticLabel: "Page Numbers:"
});
// Show the dialog and capture the result
if (dialog.show() == true) {
// Get the entered page numbers
var pageNumbers = pageNumbersField.editContents;
// Prompt the user to select the image file
var imageFile = File.openDialog("Select the image to replace with");
if (pageNumbers && imageFile) {
var pages = pageNumbers.split(',');
for (var i = 0; i < pages.length; i++) {
var pageNumber = parseInt(pages[i], 10) - 1; // Convert to zero-based index
if (pageNumber >= 0 && pageNumber < doc.pages.length) {
var page = doc.pages[pageNumber];
// Remove all existing images on the page before placing the new one
var images = page.allGraphics;
for (var j = images.length - 1; j >= 0; j--) {
images[j].remove();
}
// Place the new image on the page
var newImage = page.place(imageFile)[0];
newImage.fit(FitOptions.PROPORTIONALLY); // Adjust the image fitting as necessary
} else {
alert("Page number " + (pageNumber + 1) + " is out of range.");
}
}
} else {
alert("Please enter valid page numbers and select an image.");
}
} else {
dialog.destroy();
alert("Action cancelled.");
}