Skip to main content
Known Participant
March 21, 2022
Answered

Batch Convert EPS to PDF

  • March 21, 2022
  • 3 replies
  • 4669 views

Would like a script that can batch convert multiple eps files into pdf files "without opening them" and retain any live text or placed images. I use to use Acrobat Distiller but it is no longer working. I have an action that can convert eps files to pdfs but takes a long time since each file needs to be opened. Currently on Illustrator 24.3. 

 

Thanks!

This topic has been closed for replies.
Correct answer GerssonDelgado

hey @WA_ART   this code was taken from Examples scripts provided by Adobe

check out maybe can help you

 

var selectFile = File.openDialog("select your files", (Multiselect = true));
for (var i = 0; i < selectFile.length; i++) {
  var openFiles = app.open(File(selectFile[i]));
}
var cntDocs = app.documents.length;
for (i = 0; i <= cntDocs - 1; i++) {
  app.executeMenuCommand("fitin");
  
  try {
    // uncomment to suppress Illustrator warning dialogs
    // app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

    if (app.documents.length > 0) {
      var doc = app.activeDocument;
      // Get the folder to save the files into
      var destFolder = null;
      destFolder = doc.path.fsName;

      if (destFolder != null) {
        var options, i, sourceDoc, targetFile;

        // Get the PDF options to be used
        options = this.getOptions();
        // You can tune these by changing the code in the getOptions() function.

        for (i = 0; i < app.documents.length; i++) {
          sourceDoc = app.documents[i]; // returns the document object

          // Get the file to save the document as pdf into
          targetFile = this.getTargetFile(sourceDoc.name, ".pdf", destFolder);

          // Save as pdf
          sourceDoc.saveAs(targetFile, options);
        }
        //alert( 'Documents saved as PDF' );
      }
    } else {
      throw new Error("There are no document open!");
    }
  } catch (e) {
    alert(e.message, "Script Alert", true);
  }

  /** Returns the options to be used for the generated files.
	@return PDFSaveOptions object
*/
  function getOptions() {
    // Create the required options object
    var options = new PDFSaveOptions();
    // See PDFSaveOptions in the JavaScript Reference for available options

    // Set the options you want below:

    // For example, uncomment to set the compatibility of the generated pdf to Acrobat 7 (PDF 1.6)
    // options.compatibility = PDFCompatibility.ACROBAT7;

    // For example, uncomment to view the pdfs in Acrobat after conversion
    // options.viewAfterSaving = true;

    return options;
  }

  /** Returns the file to save or export the document into.
	@param docName the name of the document
	@param ext the extension the file extension to be applied
	@param destFolder the output folder
	@return File object
*/
  function getTargetFile(docName, ext, destFolder) {
    var newName = "";

    // if name has no dot (and hence no extension),
    // just append the extension
    if (docName.indexOf(".") < 0) {
      newName = docName + ext;
    } else {
      var dot = docName.lastIndexOf(".");
      newName += docName.substring(0, dot);
      newName += ext;
    }

    // Create the file object to save to
    var myFile = new File(destFolder + "/" + newName);

    // Preflight access rights
    if (myFile.open("w")) {
      myFile.close();
    } else {
      throw new Error("Access is denied");
    }
    return myFile;
  }
}

app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
for (ii = 0; ii <= cntDocs - 1; ii++) {
  app.executeMenuCommand("close");
  doc = null;
}

3 replies

Brad @ Roaring Mouse
Community Expert
Community Expert
March 22, 2022

"eps files but can no longer use Distiller"

Why not? What error is it throwing?

WA_ARTAuthor
Known Participant
March 22, 2022

I keep getting "Distiller quit unexpectedly." I would try to reinstall but not finding in CC to do that. Looks like it has been discontinued.

 

GerssonDelgado
GerssonDelgadoCorrect answer
Inspiring
March 21, 2022

hey @WA_ART   this code was taken from Examples scripts provided by Adobe

check out maybe can help you

 

var selectFile = File.openDialog("select your files", (Multiselect = true));
for (var i = 0; i < selectFile.length; i++) {
  var openFiles = app.open(File(selectFile[i]));
}
var cntDocs = app.documents.length;
for (i = 0; i <= cntDocs - 1; i++) {
  app.executeMenuCommand("fitin");
  
  try {
    // uncomment to suppress Illustrator warning dialogs
    // app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

    if (app.documents.length > 0) {
      var doc = app.activeDocument;
      // Get the folder to save the files into
      var destFolder = null;
      destFolder = doc.path.fsName;

      if (destFolder != null) {
        var options, i, sourceDoc, targetFile;

        // Get the PDF options to be used
        options = this.getOptions();
        // You can tune these by changing the code in the getOptions() function.

        for (i = 0; i < app.documents.length; i++) {
          sourceDoc = app.documents[i]; // returns the document object

          // Get the file to save the document as pdf into
          targetFile = this.getTargetFile(sourceDoc.name, ".pdf", destFolder);

          // Save as pdf
          sourceDoc.saveAs(targetFile, options);
        }
        //alert( 'Documents saved as PDF' );
      }
    } else {
      throw new Error("There are no document open!");
    }
  } catch (e) {
    alert(e.message, "Script Alert", true);
  }

  /** Returns the options to be used for the generated files.
	@return PDFSaveOptions object
*/
  function getOptions() {
    // Create the required options object
    var options = new PDFSaveOptions();
    // See PDFSaveOptions in the JavaScript Reference for available options

    // Set the options you want below:

    // For example, uncomment to set the compatibility of the generated pdf to Acrobat 7 (PDF 1.6)
    // options.compatibility = PDFCompatibility.ACROBAT7;

    // For example, uncomment to view the pdfs in Acrobat after conversion
    // options.viewAfterSaving = true;

    return options;
  }

  /** Returns the file to save or export the document into.
	@param docName the name of the document
	@param ext the extension the file extension to be applied
	@param destFolder the output folder
	@return File object
*/
  function getTargetFile(docName, ext, destFolder) {
    var newName = "";

    // if name has no dot (and hence no extension),
    // just append the extension
    if (docName.indexOf(".") < 0) {
      newName = docName + ext;
    } else {
      var dot = docName.lastIndexOf(".");
      newName += docName.substring(0, dot);
      newName += ext;
    }

    // Create the file object to save to
    var myFile = new File(destFolder + "/" + newName);

    // Preflight access rights
    if (myFile.open("w")) {
      myFile.close();
    } else {
      throw new Error("Access is denied");
    }
    return myFile;
  }
}

app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
for (ii = 0; ii <= cntDocs - 1; ii++) {
  app.executeMenuCommand("close");
  doc = null;
}
WA_ARTAuthor
Known Participant
March 22, 2022

Thanks! This seemed to work well. Do you know of a script that will do exactly this but without opening each file?

GerssonDelgado
Inspiring
March 22, 2022

as @femkeblanco  mentioned in the first comment "For a script to manipulate document files, it has to open them."

femkeblanco
Legend
March 21, 2022

For a script to manipulate document files, it has to open them. 

WA_ARTAuthor
Known Participant
March 21, 2022

Is it possible to open but skip font requests and/or similar prompts?

Disposition_Dev
Legend
March 22, 2022

not if you want the proper fonts to exist in the document. those prompts are illustrator telling you "there's a gap in the information for this file, so i don't know what to put here." if you don't put anything into that dialog, it can't properly render a PDF. It's like hiring a pizza delivery driver, handing them a stack of pizzas and saying "go deliver these." and when they ask for addresses for where they should be delivered, you close the door and walk away. the dialog is that request for addresses.