/**********************************************************

ADOBE SYSTEMS INCORPORATED 
Copyright 2005 Adobe Systems Incorporated 
All Rights Reserved 

NOTICE:  Adobe permits you to use, modify, and 
distribute this file in accordance with the terms
of the Adobe license agreement accompanying it.  
If you have received this file from a source 
other than Adobe, then your use, modification,
or distribution of it requires the prior 
written permission of Adobe. 

*********************************************************/

/**********************************************************
 
SaveDocsAsPDF.js

DESCRIPTION

This sample saves every open document as a PDF in a user specified location.
 
**********************************************************/

// Main Code [Execution of script begins here]

// uncomment to suppress Illustrator warning dialogs
// app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

var i, files, fileType, sourceDoc, targetFile, pdfSaveOpts;

var destFolder = null;
// Get the destination to save the files
destFolder = Folder.selectDialog( 'Select the folder where you want to save the converted PDF files.', '~' );

if (destFolder != null) {
	for ( i = 0; i < app.documents.length; i++ ) {
		sourceDoc = app.documents[i]; // returns the document object
								
		// Call function getNewName to get the name and file to save the pdf
		targetFile = getNewName(sourceDoc, destFolder);
		
		// Call function getPDFOptions get the PDFSaveOptions for the files
		pdfSaveOpts = getPDFOptions( );
		
		// Save as pdf
		sourceDoc.saveAs( targetFile, pdfSaveOpts );
	}
	alert( 'Files are saved as PDF in ' + destFolder );
}



/*********************************************************

getNewName: Function to get the new file name. The primary
name is the same as the source file.

**********************************************************/

function getNewName(sourceDoc, destFolder) {
	var docName = sourceDoc.name;
	var ext = '.pdf'; // new extension for pdf file
	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 a file object to save the pdf
	saveInFile = new File( destFolder + '/' + newName );
	return saveInFile;
}




/*********************************************************

getPDFOptions: Function to set the PDF saving options of the 
files using the PDFSaveOptions object.

**********************************************************/

function getPDFOptions()
{
	// Create the PDFSaveOptions object to set the PDF options
	var pdfSaveOpts = new PDFSaveOptions();
	
	// Setting PDFSaveOptions properties. Please see the JavaScript Reference
	// for a description of these properties.
	// Add more properties here if you like
	pdfSaveOpts.acrobatLayers = true;
	pdfSaveOpts.colorBars = true;
	pdfSaveOpts.colorCompression = CompressionQuality.AUTOMATICJPEGHIGH;
	pdfSaveOpts.compressArt = true; //default
	pdfSaveOpts.embedICCProfile = true;
	pdfSaveOpts.enablePlainText = true;
	pdfSaveOpts.generateThumbnails = true; // default
	pdfSaveOpts.optimization = true;
	pdfSaveOpts.pageInformation = true;
	
	// uncomment to view the pdfs after conversion.
	// pdfSaveOpts.viewAfterSaving = true;
	

	return pdfSaveOpts;
}