Copy link to clipboard
Copied
Hello everyone,
I'm currently working on developing an extension for InDesign that involves performing actions within the application. However, I've encountered an issue with one particular action, which involves fetching an EPS file and adding/placing it into the active document in InDesign. Unfortunately, the results haven't been satisfactory.
When attempting to open an EPS file using InDesign, I receive an alert message stating, "Cannot open the file 'filename.eps'. Adobe InDesign may not support the file format (EPS in this case), a plug-in that supports the file format may be missing, or the file may be open in another application."
This prompts me to inquire: does Adobe InDesign support EPS files? If so, could someone kindly provide guidance on how to open or import an EPS file and place it within the document?
Thank you in advance for any assistance you can provide.
Copy link to clipboard
Copied
EPS is a very old graphic format.
You said, "When attempting to open an EPS file using InDesign,..." but InDesign cannot OPEN an EPS. It can only PLACE an EPS file.
Copy link to clipboard
Copied
Hi @Karomi0D4D , InDesign supports placing and exporting EPS. Have you tested an EPS saved out of either Illustrator or Photoshop?
Copy link to clipboard
Copied
As Steve says.
InDesign opens InDesign files only including INDD, INDT, IDML. Anything else must be placed in the current document using the File > Place command.
Copy link to clipboard
Copied
What your extension is supposed to be doing?
And no offence, but before you start building extensions - you should learn how InDesign works.
Otherwise, you'll be asking a lot of questions like this - completely avoidable.
Copy link to clipboard
Copied
InDesign can open all native InDesign types, like INDD, IDML, INDT, INDB, INDL, etc and in the beta also PDF. Many others, also EPS are supported via Import/Place. But EPS is an old file type and should be avoided. It is used for old files and some company sell graphics as EPS. Internal InDesign uses EPS for some functiuonality, like the QR codes, but it is not really visible for users. EPS has no future. What should your plugin make, which advantage will it have for the users. Many plugins are for experienced ID users useless and loose with the next update their functionality. I avoid those plugins.
Copy link to clipboard
Copied
which involves fetching an EPS file and adding/placing it into the active document...
When attempting to open an EPS file using InDesign...
There seems to be some confusion about whether you are placing or opening—maybe show your code? With JS an example would be something like this:
var f = File.openDialog("Select the file", "");
var p = app.activeWindow.activePage.place(File(f));
alert("Placed File Format: " + p[0].constructor.name);
Copy link to clipboard
Copied
Solved it by using this javascript script:
// Open a file dialog to select files, allowing multiple selections
var selectFiles = File.openDialog("Select your files", function(file){ return file instanceof File; }, true);
// Check if files were selected
if (selectFiles) {
// Open or create a new document in InDesign
var doc;
if (app.documents.length === 0) {
doc = app.documents.add();
} else {
doc = app.activeDocument;
}
// Iterate over each selected file and place it on a new page
for (var i = 0; i < selectFiles.length; i++) {
if (i !== 0) { // Create a new page for all files except the first one
doc.pages.add();
}
// Activate the page where the file will be placed
var currentPage = doc.pages[i];
// Place the file on the current page
currentPage.place(File(selectFiles[i]));
// Adjust page view
app.activeWindow.activePage = currentPage;
}
} else {
throw new Error("No files were selected!");
}
Copy link to clipboard
Copied
It will use PLACE instead of IMPORT for EPS files.
Selecting multiple EPS's will create a new page per FILE and PLACE it.
Copy link to clipboard
Copied
Technically, here:
// Activate the page where the file will be placed
var currentPage = doc.pages[i];
you are not "activating" page - you are just getting a reference.
You are "activating" page - switching to it - here:
// Adjust page view
app.activeWindow.activePage = currentPage;