Skip to main content
Participant
May 24, 2012
Answered

Script: print to PostScript

  • May 24, 2012
  • 1 reply
  • 2697 views

Hello


I need help to complete a script.
I must regularly convert. Have to. Ps
I would like to make a batch on a folder.

I tried recording an action script illustrator but always select the default print.

I find this script on the forum
But I still have the same problem it selects the default printer, how to force it to use the PostScript printer

Thank you

var docs = app.documents;

var docCount = docs.length;

// if there are opened documents, print them, otherwise ask for a folder to batch print

if (docCount>0) {

    alert(docCount);

    printOpenDocs(docs);

}

else {

var folder = Folder.selectDialog("Select Source Folder..."); // select folder

printFolder(folder);

}

// Prints and closes each open document

function printOpenDocs(docs) {

            for (j=docCount-1; j>=0; j--) {

                var jdoc = docs;

                jdoc.print(options);

                jdoc.close(SaveOptions.

DONOTSAVECHANGES);
            }
}

function printFolder(folder) {
    if (folder==null) {
            alert("Good Bye");
    }

    else {
        var files = folder.getFiles ("*.ai"); // get files
        var fileCount = files.length; // count them

        if (fileCount>0) {
            for (i=0; i<fileCount; i++) {
                var idoc = app.open(files);
                idoc.print();
                idoc.close();
            }
        }
        else {
            alert("There are no Illustrator files in this folder.");
        }
    }
}

This topic has been closed for replies.
Correct answer Muppet Mark

thank you,

but I don't know how to use the "jdoc.print" syntax  ?

  var jdoc = docs;

  jdoc.print(options:printerName.'PostScript');

??


This should give you a decent enough start…

#target illustrator

printPostScript();

function printPostScript() {

   

    app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

   

    var docPath, docs, inFolder, opts, psPath;

   

    jobOpts = new PrintJobOptions();

   

    opts = new PrintOptions();

    

    opts.printPreset = 'PostScript';

   

    opts.jobOptions =  jobOpts;

   

    if ( app.documents.length > 0 ) {

       

        docs = app.documents;

       

    } else {

      

       inFolder = Folder.selectDialog( 'Select Source Folder...' );

      

        if ( inFolder != null ) {

      

            docs = inFolder.getFiles( '*.ai' );

       

       };

      

    };

    for ( i = docs.length-1; i >= 0; i-- ) {

       

        if ( docs instanceof File ) {

           

            app.open( docs );

           

        } else {

           

            app.activeDocument = docs;

       

        };

   

        docPath = decodeURI( app.activeDocument.fullName );

   

        psPath = docPath.replace( /.ai$/, '.ps' );

   

        jobOpts.file = File( psPath );

        app.activeDocument.print( opts );

        app.activeDocument.close( SaveOptions.DONOTSAVECHANGES );

        

    };

    app.userInteractionLevel = UserInteractionLevel.DISPLAYALERTS;

   

};

1 reply

Inspiring
May 24, 2012

Have you tried creating a print preset in AI then passing it to print as options… This can also be done by script but print options are more complex…

Participant
May 24, 2012

Yes I created  print preset PostScript but I can not use them in a batch processing.

Inspiring
May 24, 2012

Your line of syntax…

idoc.print();

Contains no options as a parameter so it's just going to default…

You can get the options just the once then pass on each print() in the loop?