Page Exporter Utility (PEU) 5 Script

I love this script, It really has potential to shave valuable time off of our production (exporting Hundreds of pages manually to single files is tedious and time consuming). The problem I'm having is I'm hesitant to us it because it dosn't show warnings when there is a missing link or font. There's also no warning when it overwrites a file. My question is dose anyone know how to unsuppress the warnings? I've looked over the script and don't see anything that is actively suppressing them.
Thanks
Dan
// PageExporterUtility5.0.js
// An InDesign CS JavaScript
// 08 NOV 2007
// Copyright (C) 2007  Scott Zanelli. Lonelytree Software. (www.lonelytreesw.com)
// Coming to you from Quincy, MA, USA
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
var peuINFO = new Array();
peuINFO["csVersion"] = parseInt(app.version);
// Save the old interaction level
if(peuINFO.csVersion == 3) { //CS1
    peuINFO["oldInteractionPref"] = app.userInteractionLevel;
    app.userInteractionLevel = UserInteractionLevels.interactWithAll;
else { //CS2+
    peuINFO["oldInteractionPref"] = app.scriptPreferences.userInteractionLevel;
    app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
// See if a document is open. If not, exit
if((peuINFO["numDocsToExport"] = app.documents.length) == 0){
    byeBye("Please open a document and try again.",true);
// Global Variable Initializations
var VERSION_NAME = "Page Exporter Utility 5.0"
var pseudoSingleton = 0;
var progCurrentPage = 0;// Used for progress bar
var progTotalPages = 0; // Used for progress bar
var commonBatchINFO = getNewTempENTRY(); // Used if "Set For All Batch Jobs" is selected
commonBatchINFO["infoLoaded"] = false;
peuInit(); // Initialize commonly needed info
// Store information needed for batch processing (valid for single also)
var printINFO = new Array();
// Get all needed info by looping for each document being exported
for(currentDoc = 0; currentDoc < peuINFO.numDocsToExport; currentDoc++) {
    // Get name of document and set it as the base name
    // minus the extention if it exists
    var tempENTRY = getNewTempENTRY(); // "Struct" for current document info
    tempENTRY.theDoc = app.documents[currentDoc]
    tempENTRY.singlePage = (tempENTRY.theDoc.documentPreferences.pagesPerDocument==1)?true:false;
    tempENTRY.getOut = true;
    var baseName = (tempENTRY.theDoc.name.split(".ind"))[0];
    // Display the dialog box and loop for correct info
    if((!commonBatchINFO.infoLoaded && peuINFO.batchSameForAll) || (!peuINFO.batchSameForAll) ){// get all info
        do{
            tempENTRY.getOut = true; // For handling input errors
            var mainDialog = createMainDialog(tempENTRY.theDoc.name, currentDoc+1, peuINFO.numDocsToExport);
            // Exit if cancel button chosen
            if(!mainDialog.show() ){
                mainDialog.destroy();
                byeBye("Exporting has canceled by user.",peuINFO.sayCancel);
            if(formatTypeRB.selectedButton == 4 - peuINFO.adjustForNoPS){
                changePrefs();
                tempENTRY.getOut = false;
                continue;
            // Read info from dialog items and keep as defaults and place in tempENTRY
            peuINFO.defaultDir = outputDirs.selectedIndex;
            // The index of the selected directory is the same as the
            // index in the array of directories.
            tempENTRY.outDir = peuINFO.dirListArray[peuINFO.defaultDir];
            // Type of renaming to do
            tempENTRY.nameConvType = namingConvention.selectedButton
            // The base name to add page info to
            tempENTRY.baseName = removeColons(removeSpaces(newBaseName.editContents) );
            // The start [and end] page numbers
            var startEndPgs = startEndPgs.editContents;
            // Wether to do spreads or not
            peuINFO.doSpreadsON = (doSpreads.checkedState)?1:0;
            tempENTRY.doSpreadsON = peuINFO.doSpreadsON;
            // Wether to send entire file as one document
            peuINFO.doOneFile = (oneFile.checkedState)?1:0;
            tempENTRY.doOneFile = peuINFO.doOneFile;
            // Export format type
            tempENTRY.formatType = formatTypeRB.selectedButton + peuINFO.adjustForNoPS;
            // Set persistence during warnings
            peuINFO.editStartEndPgs = startEndPgs;
            baseName = tempENTRY.baseName;
            peuINFO.exportDefaultType = tempENTRY.formatType;
            // Determine if page replacement token exists when the page token option is used
            if(peuINFO.pageNamePlacement == 2){
                var temp = tempENTRY.baseName.indexOf("<#>");
                if(temp == -1){//Token isn't there
                    alert("There is no page item token (<#>) in the base name. Please add one or change the page naming placement preference.");
                    tempENlert.getOut = false;
                    pseudoSingleton--; // Allow prefs to be accessed again, but just once
                    continue;
                else
                    pseudoSingleton++;
            else // Try to remove any <#>s as a precaution
                tempENTRY.baseName = tempENTRY.baseName.replace(/<#>/g,"");   
            // Layer Versioning & Batch options
            if(currentDoc < 1){
                peuINFO.layersON = (doLayers.checkedState)?1:0;
                if(peuINFO.numDocsToExport > 1){
                    peuINFO.batchSameForAll = (commonBatch.checkedState)?1:0;
                    peuINFO.batchON = (doBatch.checkedState)?1:0;
                    if(!peuINFO.batchON)
                        peuINFO.numDocsToExport = 1;
            //Check if spreads chosen with 'Add ".L"' option as this isn't supported.
            if(peuINFO.doSpreadsON && tempENTRY.nameConvType == 1){
                alert ("Spreads cannot be used with the 'Add \".L\"' option.\nThis combination is not supported. (1.1)");
                tempENTRY.nameConvType = 0;
                tempENTRY.getOut = false;
                continue;
            else if(peuINFO.doSpreadsON && tempENTRY.nameConvType == 4){
                alert ("Spreads cannot be used with the 'Numeric Override' option.\nThis combination is not supported. (1.2)");
                tempENTRY.nameConvType = 0;
                tempENTRY.getOut = false;
                continue;
            // Check if "Send Entire File At Once" is selected with JPG or EPS
            if(peuINFO.doOneFile && tempENTRY.formatType > 1 ){
                alert ("The 'Send Entire File At Once' option can only be used with PostScript or PDF formats. (1.3)");
                tempENTRY.getOut = false;
                continue;
            // Check if: batch printing and using the "Same for all jobs options" and a page range other than "All" was used
            if(peuINFO.doBatch && peuINFO.batchSameForAll && startEndPgs != "All"){
                alert ("The 'Set For All Batch Jobs' option can only be used with a Page Range of 'All'. Page Range has been reset to 'All'. (1.4)");
                startEndPgs = "All";
            // Create page info, skip if doing entire file as one
            var tempPageCount = 0;
            if(tempENTRY.doOneFile)
                tempPageCount = 1;
            else{
                // Get names of all the pages. Needed when pages are named using sectioning
                tempENTRY = recordPgNames(tempENTRY);
                // Check Page Validity and get Page counts of entered section(s)
                var temp = checkPages(tempENTRY, startEndPgs);
                tempENTRY = temp[0];
                tempPageCount = temp[1];
                temp = null; // Free it up
        } while(!tempENTRY.getOut);
        // Remove dialog from memory
        mainDialog.destroy();
        // Determine if tag will fit correctly
        tempENTRY.useTag = usePgInfoTag(tempENTRY.theDoc.viewPreferences.horizontalMeasurementUnits,tempENTRY.theDoc.documentPreferences.pageWidth);
            // Get the format info for this document
        switch(tempENTRY.formatType){
            case 0://PS
            tempENTRY.psINFO = getPSoptions(tempENTRY.theDoc.name.split(".ind")[0]);
            break;
            case 1://PDF
            tempENTRY.pdfPRESET = getPDFoptions(tempENTRY);
            break;
            case 2: // EPS Formatting
            tempENTRY.epsINFO = getEPSoptions(tempENTRY.theDoc.name.split(".ind")[0]);
            peuINFO.origSpread = app.epsExportPreferences.epsSpreads;// Used to reset to original state when done
            app.epsExportPreferences.epsSpreads = peuINFO.doSpreadsON;
            break;
            case 3: // JPEG Formatting
            tempENTRY.jpegINFO = getJPEGoptions(tempENTRY.theDoc.name.split(".ind")[0]);
            break;
        // If Specific Directory was chosen for the output directory, get it now
        if(peuINFO.defaultDir == 0){
            tempENTRY.outDir = getDirectory("Please select the output directory:",peuINFO.startingDirectory);
            if(tempENTRY.outDir != null)
                tempENTRY.outDir += "/";
            else
                byeBye("Exporting has been canceled by user.", peuINFO.sayCancel);
        // Set the common elements for all batch jobs if it was selected
        if(!commonBatchINFO.infoLoaded && peuINFO.batchSameForAll){
            commonBatchINFO.infoLoaded = true;
            commonBatchINFO.pageNamePlacement = tempENTRY.pageNamePlacement;
            commonBatchINFO.outDir = tempENTRY.outDir;
            commonBatchINFO.nameConvType = tempENTRY.nameConvType
            commonBatchINFO.doSpreadsON = tempENTRY.doSpreadsON;
            commonBatchINFO.doOneFile = tempENTRY.doOneFile;
            commonBatchINFO.formatType = tempENTRY.formatType;
            commonBatchINFO.psINFO = tempENTRY.psINFO;
            commonBatchINFO.pdfPRESET = tempENTRY.pdfPRESET
            commonBatchINFO.epsINFO = tempENTRY.epsINFO
            commonBatchINFO.jpegINFO = tempENTRY.jpegINFO;
    } // End each/first of batch
    else{ // Get the base name for other batch jobs
        do{
            tempENTRY.getOut = true;
            var nameDialog = app.dialogs.add({name:(VERSION_NAME + ": Base Name for \"" + tempENTRY.theDoc.name + "\"" + ((peuINFO.numDocsToExport==1)?"":" (" + (currentDoc+1) + " of " + peuINFO.numDocsToExport + " documents)") ), canCancel:true} );
            with (nameDialog){
                with (dialogColumns.add() ){
                    with(dialogRows.add() ){
                    staticTexts.add({staticLabel:"Enter the Base Name for \"" + tempENTRY.theDoc.name + "\""} );
                    var newBaseName = textEditboxes.add({editContents:baseName, minWidth:135} );
                    with(dialogRows.add() )
                        staticTexts.add({staticLabel:"", minWidth:400} );
            if(!nameDialog.show() ){
                nameDialog.destroy();
                byeBye("User canceled export.",peuINFO.sayCancel);
            else{
                tempENTRY.baseName = removeColons(removeSpaces(newBaseName.editContents) );
                nameDialog.destroy();
                // Determine if page replacement token exists when the page token option is used
                if(peuINFO.pageNamePlacement == 2){
                    var temp = tempENTRY.baseName.indexOf("<#>");
                    if(temp == -1){//Token isn't there
                        alert("There is no page item token (<#>) in the base name. Please add one or click cancel in the next dialog box.");
                        tempENTRY.getOut = false;
                else // Try to remove any <#>s as a precaution
                    tempENTRY.baseName = tempENTRY.baseName.replace(/<#>/g,"");   
        }while(!tempENTRY.getOut);
        // Get names of all the pages. Needed when pages are named using sectioning
        tempENTRY = recordPgNames(tempENTRY);
        // Set pgStart and pgEnd, forcing "All" pages to output
        tempENTRY = (checkPages(tempENTRY, "All"))[0];
        // The page count is all pages due to common batching
        tempPageCount = tempENTRY.theDoc.pages.length;
        // This info is common, get it from commonBatchINFO:
        tempENTRY.pageNamePlacement = commonBatchINFO.pageNamePlacement;
        tempENTRY.outDir = commonBatchINFO.outDir;
        tempENTRY.nameConvType = commonBatchINFO.nameConvType
        tempENTRY.doSpreadsON = commonBatchINFO.doSpreadsON;
        tempENTRY.doOneFile = commonBatchINFO.doOneFile;
        tempENTRY.formatType = commonBatchINFO.formatType;
        tempENTRY.psINFO = commonBatchINFO.psINFO;
        tempENTRY.pdfPRESET = commonBatchINFO.pdfPRESET
        tempENTRY.epsINFO = commonBatchINFO.epsINFO
        tempENTRY.jpegINFO = commonBatchINFO.jpegINFO;
    // Get any layering info
    if(peuINFO.layersON){
        tempENTRY.layerINFO = layerManager(tempENTRY.theDoc);
        if (tempENTRY.layerINFO == null) // Only one layer, turn it off for this doc
            tempENTRY.layersON = false;
        else
            tempENTRY.layersON = true;
    // Sum up pages for the grand total for use in progress bar
    var temp = 1;
    if(peuINFO.doProgressBar && tempENTRY.layersON){
        // Figure tally for progress bar to include versions
        for(i=0;i < tempENTRY.layerINFO.verControls.length; i++)
            if (tempENTRY.layerINFO.verControls[i] == 1)
                temp++;
        if(!peuINFO.baseLaersAsVersion)
            temp--;
    progTotalPages += (tempPageCount*temp);
    // All info for this doc is finally gathered, add it to the main printINFO array
    printINFO.push(tempENTRY);
    // Only one chance to change prefs: trigger singleton
    pseudoSingleton++;
}// end of main for loop
savePrefs(); // Record any changes
// Initiallize progress bar if available
if(peuINFO.doProgressBar)
    app.createProgressBar("Exporting Pages...", 0, progTotalPages, true);
// Export by looping through all open documents if using batch option, otherwise just the front document is exported
for(currentDoc = 0; currentDoc < printINFO.length; currentDoc++){
    var currentINFO = printINFO[currentDoc];
    // Set message in progress bar if available
    if(peuINFO.doProgressBar){
            var progCancel = app.setProgress(currentINFO.theDoc.name);
            if(progCancel)
                byeBye("User canceled export.",peuINFO.sayCancel);
    // Set format options here so it's done just once per document
    setExportOption(currentINFO);
    // "Do one file" or PS/PDF with one page:
    if (currentINFO.doOneFile || currentINFO.singlePage){
        // Remove page token if it was entered and this name positioning option is set
        currentINFO.baseName = currentINFO.baseName.replace(/<#>/g,"");
        if(currentINFO.layersON){
            var theLayers = currentINFO.theDoc.layers;
            var baseControls = currentINFO.layerINFO.baseControls;
            var versionControls = currentINFO.layerINFO.verControls;
            var lastVersion = -1;
            // Loop for versioning
             for(v = 0; v < versionControls.length; v++){
                if(!versionControls[v])
                    continue;
                if(lastVersion != -1)// Turn the last layer back off
                    theLayers[lastVersion].visible = false;
                lastVersion = v;
                theLayers[v].visible = true;
                currentINFO.outfileName = addPartToName(currentINFO.baseName, theLayers[v].name, peuINFO.layerBeforeON)
                // Export this version
                exportPage(currentINFO, PageRange.allPages);
                // Advance progress bar if available
                if(peuINFO.doProgressBar)
                    advanceBar();
            // If Base layer/s is/are to be output as a version, do it now
            if(peuINFO.baseLaersAsVersion){
                lastVersion = -1;
                // Turn off all versioning layers
                for(v = 0; v < currentINFO.layerINFO.baseControls.length; v++){
                    if(currentINFO.layerINFO.baseControls[v])// its a base layer, keep track of last base version layer number
                        lastVersion = v;
                    else
                        theLayers[v].visible = false;
                if (!lastVersion == -1){// Only export if there was a base version
                    currentINFO.outfileName = addPartToName(currentINFO.baseName, theLayers[lastVersion].name, peuINFO.layerBeforeON);
                    // Export the base layer(s)
                    exportPage(currentINFO, PageRange.allPages);
                    // Advance progress bar if available
                    if(peuINFO.doProgressBar)
                        advanceBar();
        else{ // No layer versioning, just export
            currentINFO.outfileName = currentINFO.baseName;
            // Export the base layer(s)
            exportPage(currentINFO, PageRange.allPages);
            // Advance progress bar if available
            if(peuINFO.doProgressBar)
                advanceBar();
        if(!peuINFO.batchON)
            byeBye("Done exporting as a single file.",true);
    else{ // Do single pages/spreads
        if (!currentINFO.hasNonContig)
            // Pages are contiguous, can just export
            outputPages(currentINFO.pgStart, currentINFO.pgEnd, currentINFO);
        else{ // Export non-contiguous
            // Loop through array of page sections
            for (ii = 0; ii < currentINFO.nonContigPgs.length; ii++){
                temp = currentINFO.nonContigPgs[ii];
                // Here we handle the start/end pages for any non-contig that has "-"
                if (temp.indexOf("-") != -1){
                    temp2 = temp.split("-");
                    outputPages(temp2[0],temp2[1], currentINFO);
                else // The non-contiguous page is a single page
                    outputPages(temp, temp, currentINFO);
    // Set the spread settings back to what it was originally
    try{
        switch (currentINFO.formatType){
            case 0: // PostScript Formatting
                theDoc.printPreferences.printSpreads = peuINFO.origSpread;
                break;
            case 1: // PDF Formatting
                currentINFO.pdfPRESET.exportReaderSpreads = peuINFO.origSpread;
                break;
            case 2: // EPS Formatting
                app.epsExportPreferences.epsSpreads = peuINFO.origSpread;
                break;
            case 3: // JPEG Formatting
                app.jpegExportPreferences.exportingSpread = peuINFO.origSpread;
                break;
    catch(e){/*Just ignore it*/}
byeBye("The requested pages are done being exported.",true); // Last line of script execution
/*         Operational Functions           */
* Handle exporting
function outputPages(pgStart, pgEnd, currentINFO){
    var pgRange;
    var layerName = "";
    var numVersions;
    var currentPage;
    var lastVersion = -1;
    var numericallyLastPage;
    if (currentINFO.layersON){
        var theLayers = currentINFO.theDoc.layers;
        var baseControls = currentINFO.layerINFO.baseControls;
        var versionControls = currentINFO.layerINFO.verControls;
        numVersions = versionControls.length;
        // Compensate for base layers as a version
        if(peuINFO.baseLaersAsVersion)
            numVersions++;
    else
        numVersions = 1;
    for (v = 0; v < numVersions; v++){
        if(currentINFO.layersON){
            if(v == (numVersions - 1) && peuINFO.baseLaersAsVersion){
                var currentLayer = -1;
                // Base layer(s) are to be output as a version
                // Turn off all versioning layers
                for(slbm = 0; slbm < baseControls.length; slbm++){
                    if(baseControls[slbm])// its a base layer, use its name for page name
                        currentLayer = slbm;
                    else
                        theLayers[slbm].visible = false;
                // Check if there was no base layer at all
                if (currentLayer == -1)
                    layerName = "**NO_BASE**"
                else
                    layerName = theLayers[currentLayer].name;
            else{
                if(!versionControls[v])
                    continue;
                if(lastVersion != -1)// Turn the last layer back off
                    theLayers[lastVersion].visible = false;
                lastVersion = v;
                theLayers[v].visible = true;
                layerName = theLayers[v].name;
        if (currentINFO.nameConvType == 4){
            currentPage = pgStart;
            numericallyLastPage = pgEnd;
        else if (currentINFO.doSpreadsON){
            currentPage = pgStart - 1;
            numericallyLastPage = pgEnd;
        else {
            currentPage = getPageOffset(pgStart, currentINFO.pageNameArray , currentINFO.pageRangeArray);
            numericallyLastPage = getPageOffset(pgEnd, currentINFO.pageNameArray, currentINFO.pageRangeArray);
        if(layerName != "**NO_BASE**"){
            do{
                currentINFO.outfileName = getPageName(currentPage, layerName, currentINFO);
                if (currentINFO.doSpreadsON){
                    pgRange = currentINFO.pageRangeArray[getPageOffset(currentINFO.theDoc.spreads[currentPage].pages[0].name, currentINFO.pageNameArray, currentINFO.pageRangeArray)];
                else if (currentINFO.nameConvType == 4)
                    pgRange = currentINFO.pageRangeArray[currentPage-1];
                else
                    pgRange = currentINFO.pageRangeArray[currentPage];
                // Do the actual export:
                exportPage(currentINFO, pgRange);
                // Update progress bar if available
                if(peuINFO.doProgressBar)
                    advanceBar();
                currentPage++;
            } while(currentPage <= numericallyLastPage);
* Export the page
function exportPage(currentINFO, pgRange){
    var outFile = currentINFO.outDir + currentINFO.outfileName;
    switch (currentINFO.formatType){
        case 0: // PostScript Formatting
            with(currentINFO.theDoc.printPreferences){
                printFile = new File(outFile + ((currentINFO.psINFO.ext)?".ps":""));
                pageRange = pgRange;
            // Needed to get around blank pages using separations
            try{
                currentINFO.theDoc.print(false);
            catch(e){/*Just skip it*/}
            break;
        case 1: // PDF Formatting
            app.pdfExportPreferences.pageRange = pgRange;
            currentINFO.theDoc.exportFile(ExportFormat.pdfType, (new File(outFile + ".pdf")), false, currentINFO.pdfPRESET);
            break;
        case 2: // EPS Formatting
            app.epsExportPreferences.pageRange = pgRange;
            currentINFO.theDoc.exportFile(ExportFormat.epsType, (new File(outFile + ".eps")), false);
            break;
        case 3: // JPEG Formatting
            if(pgRange == PageRange.allPages){
                app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportAll;
            else{
                app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportRange;
                app.jpegExportPreferences.pageString = pgRange;
            currentINFO.theDoc.exportFile(ExportFormat.jpg, (new File(outFile + ".jpg")), false);
            break;
* Create a name for the page being exported
function getPageName(currentPage, layerName, currentINFO){
    var pgRename = "";
    if (currentINFO.doSpreadsON)
        currentINFO["currentSpread"] = currentINFO.theDoc.spreads[currentPage].pages;
    switch (currentINFO.nameConvType){
        case 3: // Odd/Even pages/spreads = .LA.F/LA.B, LB.F/LB.B ...
            pgRename = makeLotName(currentPage+1, peuINFO.subType);
            break;
        case 2: // Odd/Even pages/spreads = .F/.B
            pgRename = ((currentPage+1)%2 == 0) ? "B" : "F";
            break;
        case 1: // Add ".L" to the page name
            pgRename = "L" + currentINFO.pageNameArray[currentPage];
            break;
        case 0: case 4:// As is or Numeric Override
                        // Optionally add "P" and any zeros if options chosen and is numerically named
                        // otherwise, just the "seperatorChar" is added to page name
            if (currentINFO.doSpreadsON){
                // Loops through number of pages per spread
                // and adds each page name to the final name (P08.P01)
                for (j = 0; j < currentINFO.currentSpread.length; j++){
                    if(currentINFO.currentSpread[j].appliedSection.includeSectionPrefix)
                        var tempPage = currentINFO.pageRangeArray[getPageOffset(currentINFO.currentSpread[j].name, currentINFO.pageNameArray, currentINFO.pageRangeArray)];
                    else
                        var tempPage = currentINFO.pageNameArray[getPageOffset(currentINFO.currentSpread[j].name, currentINFO.pageNameArray, currentINFO.pageRangeArray)];
                    var tempPageNum = parseInt(tempPage,10);
                    /* If section name starts with a number, need to compare length of orig vs parsed
                     * to see if the page name is solely a number or a combo num + letter, etc.
                    if (! isNaN(tempPageNum) && ((""+tempPage).length == (""+tempPageNum).length )){
                        if (peuINFO.addZeroON)
                            tempPage = addLeadingZero(tempPageNum, currentINFO.theDoc.pages.length);
                        if (peuINFO.addPon)
                            tempPage = "P" + tempPage;
                    pgRename = (j==0) ? tempPage : pgRename + peuINFO.charList[peuINFO.seperatorChar] + tempPage;
            else {
                // Create a new name for an individual page
                if (currentINFO.nameConvType == 4)
                    pgRename = currentPage;
                else
                    pgRename = currentINFO.pageNameArray[currentPage];
                if (! isNaN(parseInt(pgRename,10)) && (""+pgRename).length == (""+parseInt(pgRename,10)).length) {
                    if (peuINFO.addZeroON)
                        pgRename = addLeadingZero(pgRename, currentINFO.theDoc.pages.length);
                    if (peuINFO.addPon)
                        pgRename = "P" + pgRename;
            break;
    if(currentINFO.layersON)
        pgRename = addPartToName(pgRename, layerName, peuINFO.layerBeforeON);
    // Add page name to base name based on option selected
    if(peuINFO.pageNamePlacement == 2)
        pgRename = removeColons(currentINFO.baseName.replace(/<#>/g,pgRename) );
    else
        pgRename = addPartToName(currentINFO.baseName, pgRename,peuINFO.pageNamePlacement);
    return pgRename;
* Add a name part before or after a given base string
function addPartToName(theBase, addThis, addBefore){
    //Remove any colons
    theBase = removeColons(theBase);
    addThis = removeColons(addThis);
    return (addBefore) ? (addThis + peuINFO.charList[peuINFO.seperatorChar] + theBase ):(theBase + peuINFO.charList[peuINFO.seperatorChar] + addThis);
* Find the offset page number for a page by its name
function getPageOffset(pgToFind, pageNameArray, pageRangeArray){
    var offset;
    for(offset = 0; offset<pageRangeArray.length;offset++){
        if((""+ pgToFind).toLowerCase() == (("" + pageNameArray[offset]).toLowerCase() ) || (""+ pgToFind).toLowerCase() == (("" + pageRangeArray[offset]).toLowerCase() ) )
            return offset;
    return -1;
* Replace any colons with specialReplaceChar
function removeColons(tempName){
    return tempName.replace(/:/g,peuINFO.charList[peuINFO.specialReplaceChar]);
* Remove spaces from front and end of name
function removeSpaces(theName){
    // Trim any leading or trailing spaces in base name
    var i,j;
    for(i = theName.length-1;i>0 && theName.charAt(i) == " ";i--);// Ignore any spaces on end of name
    for(j = 0; j<theName.length && theName.charAt(j) == " ";j++);// Ignore any spaces at front of name
    theName = theName.substring(j,i+1);
    return theName
* Add leading zero(s)
function addLeadingZero(tempPageNum, pageCount){
    if(peuINFO.zeroPadding == 0){
        // Normal padding
        if((tempPageNum < 10 && pageCount < 100) || (tempPageNum > 9 && pageCount > 99 && tempPageNum < 100))
            return addSingleZero(tempPageNum);
        else if(tempPageNum < 10 && pageCount > 99)
            return addDoubleZero(tempPageNum);
        else
            return ("" + tempPageNum);
    }else if(peuINFO.zeroPadding == 1){
        // Pad to 2 digits
        if(tempPageNum < 10)
            return addSingleZero(tempPageNum);
        else
            return ("" + tempPageNum);
    }else{
        // Pad to 3 digits
        if(tempPageNum < 10)
            return addDoubleZero(tempPageNum);
        else if(tempPageNum < 100)
            return addSingleZero(tempPageNum);
        else
            return ("" + tempPageNum);
* Add leading zero helper for single
function addSingleZero(pgNum){
    return ("0" + pgNum);
* Add leading zero helper for double
function addDoubleZero(pgNum){
    return ("00" + pgNum);
* Create lot name from page number
function makeLotName(thePage, subType){
    var iii = thePage;
    var curr = 0;
    var alphaBet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var lotName = "L";
    if(subType == 0){
        while(iii>52){
            curr = Math.floor((iii-1)/52)-1;
            lotName += alphaBet[curr];
            if(curr >= 0)
                iii -= 52*(1+curr);
            else
                iii -= 52;
        lotName += alphaBet[Math.floor((iii-1)/2)%26];
    else
        for(iii=thePage; iii>0; iii-=52)
            lotName += alphaBet[Math.floor((iii-1)/2)%26];
    return lotName += (thePage & 0x1)?".F":".B";
* Advance progress bar one unit
function advanceBar(){
    var progCancel = app.setProgress(++progCurrentPage);
    if(progCancel)
        byeBye("User canceled export.",peuINFO.sayCancel);
* Create an Empty tempENTRY "struct"
function getNewTempENTRY(){
    var newTempENTRY = new Array();
    newTempENTRY["theDoc"] = null;
    newTempENTRY["singlePage"] = null;
    newTempENTRY["getOut"] = null;
    newTempENTRY["outDir"] = null;
    newTempENTRY["outfileName"] = "";
    newTempENTRY["nameConvType"] = null;
    newTempENTRY["baseName"] = null;
    newTempENTRY["doSpreadsON"] = null;
    newTempENTRY["doOneFile"] = null;
    newTempENTRY["formatType"] = null;
    newTempENTRY["layersON"] = null;
    newTempENTRY["hasNonContig"] = false;
    newTempENTRY["nonContigPgs"] = null;
    newTempENTRY["pageNameArray"] = new Array();
    newTempENTRY["pageRangeArray"] = new Array();
    newTempENTRY["psINFO"] = null;
    newTempENTRY["pdfPRESET"] = null;
    newTempENTRY["epsINFO"] = null;
    newTempENTRY["jpegINFO"] = null;
    newTempENTRY["layerINFO"] = null;
    newTempENTRY["useTag"] = null;
    newTempENTRY["pgStart"] = null;
    newTempENTRY["pgEnd"] = null;
    return newTempENTRY;
* Record all the page/spread names
function recordPgNames(tempENTRY){
        // Get names of all the pages. Needed when pages are named using sectioning
    for (i = 0; i < tempENTRY.theDoc.documentPreferences.pagesPerDocument; i++){
        var aPage = tempENTRY.theDoc.pages.item(i);
        tempENTRY.pageNameArray[i] = aPage.name;
        tempENTRY.pageRangeArray[i] = (aPage.appliedSection.includeSectionPrefix)? aPage.name : (aPage.appliedSection.name + aPage.name);
    return tempENTRY;
* Set the export options
function setExportOption(currentINFO){
        // Set any options here instead of with each page
    switch (currentINFO.formatType){
        case 0: // PostScript Formatting
            setPSoptions(currentINFO);
            break;
        case 1: // PDF Formatting
            // Nothing to do
            break;
        case 2: // EPS Formatting
            setEPSoptions(currentINFO.epsINFO);
            break;
        case 3: // JPEG Formatting
            setJPEGoptions(currentINFO.jpegINFO);
            break;
* Get PostScript format options
function getPSoptions(docName){
    var psOptions = new Array();
    psOptions["ignore"] = true;
    var tempGetOut, PSdlog, pgHeight, pgWidth;
    var changeAddPSextention, tempBaseName;
    var printPreset;
    do{
        tempGetOut = true;
        PSdlog = app.dialogs.add({name:"PostScript Options for \"" + docName + "\"", canCancel:true} );
        with (PSdlog)
            with (dialogColumns.add() ){
                with (dialogRows.add() )
                    staticTexts.add({staticLabel:"Print Presets:"} );
                printPreset = dropdowns.add({stringList:peuINFO.psPrinterNames , minWidth:236, selectedIndex:peuINFO.defaultPrintPreset} );
                with (dialogRows.add() )
                    staticTexts.add({staticLabel:"Override PS Page Size (" + peuINFO.measureLableArray[peuINFO.measurementUnits] + ")"} );
                with (borderPanels.add() )
                    with (dialogColumns.add() )
                        with (dialogRows.add() ){
                            staticTexts.add({staticLabel:"Width:", minWidth:45} );
                            pgWidth = textEditboxes.add({editContents:"0", minWidth:53} );
                            staticTexts.add({staticLabel:"Height:", minWidth:45} );
                            pgHeight = textEditboxes.add({editContents:"0", minWidth:54} );
                with (dialogRows.add() ){
                    staticTexts.add({staticLabel:"Add \".ps\" to end of file name"} );
                    changeAddPSextention = dropdowns.add({stringList:["No","Yes"], selectedIndex:peuINFO.addPSextention} )
        if((PSdlog.show()) ){
            // Get the page height + width
            pgHeight = parseFloat(pgHeight.editContents);
            pgWidth = parseFloat(pgWidth.editContents);
            // Check entered H & W for error
            if(isNaN(pgHeight) || isNaN(pgWidth) || pgHeight < 0 || pgWidth < 0 ){
                alert ("Both page height and width must be numeric and greater than zero (3.1).");
                pgHeight = "0";
                pgWidth  = "0";
                tempGetOut = false;
                continue;
            if(pgHeight > 0 && pgWidth > 0) // User changed size, use the new size
                psOptions.ignore = false;
            psOptions["height"] = pgHeight + peuINFO.measureUnitArray[peuINFO.measurementUnits];
            psOptions["width"] = pgWidth + peuINFO.measureUnitArray[peuINFO.measurementUnits];
            psOptions["ext"] = changeAddPSextention.selectedIndex;
            peuINFO.addPSextention = psOptions["ext"];
            psOptions["preset"] = printPreset.selectedIndex
            peuINFO.defaultPrintPreset = psOptions.preset;
            savePrefs();
            PSdlog.destroy();
        else{
            PSdlog.destroy();
            byeBye("Exporting has been canceled by user.",peuINFO.sayCancel);
    } while(!tempGetOut);
    return psOptions;
* Set Postscript options
function setPSoptions(theINFO){
    with(currentINFO.theDoc.printPreferences){
        activePrinterPreset = peuINFO.csPSprinters[theINFO.psINFO.preset];
        peuINFO.origSpread = printSpreads; // Used to reset to original state when done
        printSpreads = theINFO.doSpreadsON;
        if(colorOutput != ColorOutputModes.separations && colorOutput != ColorOutputModes.inripSeparations)
            printBlankPages = true;
        if (theINFO.useTag)
            pageInformationMarks = true;
        else
            pageInformationMarks = false;
        if(!theINFO.psINFO.ignore){
            try{
                paperSize = PaperSizes.custom;
                paperHeight = theINFO.psINFO.height;
                paperWidth = theINFO.psINFO.width;
            catch(Exception){
                alert ("The current PPD doesn't support custom page sizes. The page size from the Print Preset will be used (3.2).");
* Get PDF options
function getPDFoptions(theINFO){
    var PDFdlog = app.dialogs.add({name:"PDF Options for \"" + theINFO.theDoc.name.split(".ind")[0] + "\"", canCancel:true} );
    var temp = new Array();
    for(i=0;i<app.pdfExportPresets.length;i++)
        temp.push(app.pdfExportPresets[i].name);
    // Test if default PDFpreset is greater # than actual list.
    // This occurs if one was deleted and the last preset in the list was the default
    if(peuINFO.defaultPDFpreset > temp.length-1)
        peuINFO.defaultPDFpreset = 0;
    with (PDFdlog)
        with (dialogColumns.add() ){
            with (dialogRows.add() )
                staticTexts.add({staticLabel:"PDF Export Preset:"} );
            pdfPresets = dropdowns.add({stringList: temp, minWidth:50, selectedIndex:peuINFO.defaultPDFpreset} );
    if(PDFdlog.show() ){
        temp = app.pdfExportPresets[pdfPresets.selectedIndex];
        peuINFO.defaultPDFpreset = pdfPresets.selectedIndex;
        peuINFO.origSpread = temp.exportReaderSpreads;
        try{
            temp.exportReaderSpreads = theINFO.doSpreadsON;
            temp.pageInformationMarks = (theINFO.useTag && temp.cropMarks)?true:false;
        }catch(e){/*ignore it*/}
        PDFdlog.destroy();
        return temp;
    else{
        PDFdlog.destroy();
        byeBye("PDF exporting has been canceled by user.", peuINFO.sayCancel);
* Get JPEG options
function getJPEGoptions(docName){
    var temp = new Array();
    var JPEGdlog = app.dialogs.add({name:"JPEG Options for \"" + docName + "\"", canCancel:true} );
    with (JPEGdlog)
        with (dialogColumns.add() ){
            with (dialogRows.add() )
                staticTexts.add({staticLabel:"Quality:"} );
            JPEGquality = dropdowns.add({stringList:(new Array("Low","Medium","High","Maximum")) , minWidth:50, selectedIndex:peuINFO.defaultJPEGquality} );
            with (dialogRows.add() )
                staticTexts.add({staticLabel:"Encoding Type:"} );
                JPEGrender = dropdowns.add({stringList:["Baseline","Progressive"] , minWidth:50, selectedIndex:peuINFO.defaultJPEGrender } );
    if(JPEGdlog.show() ){
        peuINFO.defaultJPEGquality = JPEGquality.selectedIndex;
        temp["qualityType"] = peuINFO.defaultJPEGquality;
        peuINFO.defaultJPEGrender = JPEGrender.selectedIndex;
        temp["renderType"] = peuINFO.defaultJPEGrender;
    else{
        JPEGdlog.destroy();
        byeBye("JPEG exporting has been canceled by user.",peuINFO.sayCancel);
    JPEGdlog.destroy();
    return temp;
* Set JPEG options
function setJPEGoptions(theINFO){
    with(app.jpegExportPreferences){
        peuINFO.origSpread = exportingSpread; // Used to reset to original state when done
        exportingSpread = currentINFO.doSpreadsON;
        exportingSelection = false; // Export the entire page
        if(peuINFO.csVersion > 3)
            jpegExportRange = ExportRangeOrAllPages.exportRange;
        switch (theINFO.qualityType){
            case 0:
                jpegQuality = JPEGOptionsQuality.low;
                break;
            case 1:
                jpegQuality = JPEGOptionsQuality.medium;
                break;
            case 2:
                jpegQuality = JPEGOptionsQuality.high;
                break;
            case 3:
                jpegQuality = JPEGOptionsQuality.maximum;
                break;
        jpegRenderingStyle = (theINFO.renderType)? JPEGOptionsFormat.baselineEncoding : JPEGOptionsFormat.progressiveEncoding;
* Get EPS options
function getEPSoptions(docName){
    var epsOptions = new Array();
    var epsDialog = app.dialogs.add({name:"EPS Options for \"" + docName + "\"", canCancel:true} );
    var oldBleed = peuINFO.bleed;
    with (epsDialog){
        // Left Column
        with (dialogColumns.add() ){
            with (dialogRows.add() )
            with (borderPanels.add() )
                with (dialogColumns.add() ){
                    with (dialogRows.add() )
                        staticTexts.add({staticLabel:"Flattener Presets:"} );
                    changeFlattenerPreset = dropdowns.add({stringList:peuINFO.flattenerNames , minWidth:180, selectedIndex:peuINFO.defaultFlattenerPreset} );
                    with (dialogRows.add() )
                        changeIgnoreOverride = checkboxControls.add({staticLabel:"Ignore Overrides", checkedState:peuINFO.ignoreON} );
                    with (dialogRows.add() )
                        staticTexts.add({staticLabel:"Preview Type:"} );
                    changePreviewPreset = dropdowns.add({stringList:peuINFO.previewTypes , minWidth:180, selectedIndex:peuINFO.defaultPreview} );
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"Bleed:"} );
                        changeBleedVal = realEditboxes.add({editValue:peuINFO.bleed, minWidth:60} );
                        staticTexts.add({staticLabel:peuINFO.measureLableArray[peuINFO.measurementUnits]} );
                    with (dialogRows.add() )
                        staticTexts.add({staticLabel:"OPI Options:"} );
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"Omit:"} );
                        changeOpiEPS = checkboxControls.add({staticLabel:"EPS", checkedState:peuINFO.epsON} );
                        changeOpiPDF = checkboxControls.add({staticLabel:"PDF", checkedState:peuINFO.pdfON} );
                        changeOpiBitmap = checkboxControls.add({staticLabel:"Bitmapped", checkedState:peuINFO.bitmapON} );
        // Right column
        with (dialogColumns.add() ){
            with(borderPanels.add() ){
                with(dialogColumns.add() ){
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"PostScript level:"} );
                        var changePSlevel = dropdowns.add({stringList:["2","3"] , minWidth:75, selectedIndex:peuINFO.psLevel} );
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"Color mode:"} );
                        if(peuINFO.csVersion == 3)
                            var changeColorMode = dropdowns.add({stringList:["Unchanged","Grayscale", "RGB", "CMYK"] , minWidth:100, selectedIndex:peuINFO.colorType } );
                        else
                            var changeColorMode = dropdowns.add({stringList:["Unchanged","Grayscale", "RGB", "CMYK","PostScript Color Management"] , minWidth:100, selectedIndex:peuINFO.colorType } );
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"Font embedding:"} );
                        var changeFontEmbedding = dropdowns.add({stringList:["None","Complete", "Subset"] , minWidth:100, selectedIndex:peuINFO.fontEmbed } );
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"Type of data to send:"} );
                        var changeDataToSend = dropdowns.add({stringList:["All","Proxy"] , minWidth:50, selectedIndex:peuINFO.dataSent } );
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"Data type:"} );
                        var changeDataType = dropdowns.add({stringList:["Binary","ASCII"] , minWidth:50, selectedIndex:peuINFO.dataType } );
                    with (dialogRows.add() ){
                        staticTexts.add({staticLabel:"Perform OPI replacement:"} );
                        var changeOPIreplace = dropdowns.add({stringList:["No","Yes"] , minWidth:50, selectedIndex:peuINFO.opiReplacement} );
    do{
        var getOut = true;
        if((epsDialog.show()) ){
            // Use these to update the prefs file
            peuINFO.defaultFlattenerPreset = changeFlattenerPreset.selectedIndex;
            peuINFO.ignoreON = (changeIgnoreOverride.checkedState)?1:0;
            peuINFO.defaultPreview = changePreviewPreset.selectedIndex;
            peuINFO.bleed = changeBleedVal.editContents;
            peuINFO.epsON = (changeOpiEPS.checkedState)?1:0;
            peuINFO.pdfON = (changeOpiPDF.checkedState)?1:0;
            peuINFO.bitmapON = (changeOpiBitmap.checkedState)?1:0;
            peuINFO.psLevel = changePSlevel.selectedIndex;
            peuINFO.colorType = changeColorMode.selectedIndex;
            peuINFO.fontEmbed = changeFontEmbedding.selectedIndex;
            peuINFO.dataSent = changeDataToSend.selectedIndex;
            peuINFO.dataType = changeDataType.selectedIndex;
            peuINFO.opiReplacement = changeOPIreplace.selectedIndex;
            // Check if bleed value is OK
            peuINFO.bleed = parseFloat(peuINFO.bleed)
            if (isNaN(peuINFO.bleed)){
                alert("Bleed value must be a number (1.1).");
                getOut = false;
                peuINFO.bleed = oldBleed;
            else if (peuINFO.bleed < 0){
                alert("Bleed value must be greater or equal to zero (1.2).");
                getOut = false;
                peuINFO.bleed = oldBleed;
            else {
                // Check if bleed is too big
                try {
                    app.epsExportPreferences.bleedBottom = "" + peuINFO.bleed + peuINFO.measureUnitArray[peuINFO.measurementUnits];
                catch (Exception){
                    alert("The bleed value must be less than one of the following: 6 in | 152.4 mm | 432 pt | 33c9.384");
                    getOut = false;
                    peuINFO.bleed = oldBleed;
        else{
            epsDialog.destroy();
            byeBye("EPS Export canceled by user.", peuINFO.sayCancel);
    }while(!getOut);
        // These are used for exporting
        epsOptions["defaultFlattenerPreset"] = changeFlattenerPreset.selectedIndex;
        epsOptions["ignoreON"] = peuINFO.ignoreON;
        epsOptions["defaultPreview"] = changePreviewPreset.selectedIndex;
        epsOptions["bleed"] = peuINFO.bleed;
        epsOptions["epsON"] = peuINFO.epsON;
        epsOptions["pdfON"] = peuINFO.pdfON;
        epsOptions["bitmapON"] = peuINFO.bitmapON;
        epsOptions["psLevel"] = changePSlevel.selectedIndex;
        epsOptions["colorType"] = changeColorMode.selectedIndex;
        epsOptions["fontEmbed"] = changeFontEmbedding.selectedIndex;
        epsOptions["dataSent"] = changeDataToSend.selectedIndex;
        epsOptions["dataType"] = changeDataType.selectedIndex;
        epsOptions["opiReplacement"] = changeOPIreplace.selectedIndex;
        epsDialog.destroy();
        return epsOptions;
*     Apply chosen settings to the EPS export prefs
function setEPSoptions(theINFO){
    with(app.epsExportPreferences){
        appliedFlattererPreset = peuINFO.flattenerNames[theINFO.defaultFlattenerPreset];
        bleedBottom = "" + theINFO.bleed + peuINFO.measureUnitArray[peuINFO.measurementUnits];
        bleedInside = bleedBottom;
        bleedOutside = bleedBottom;
        bleedTop = bleedBottom;
        epsSpreads = currentINFO.doSpreadsON;
        ignoreSpreadOverrides = theINFO.ignoreON;
        switch (theINFO.dataType){
            case 0:
                dataFormat = DataFormat.binary;
                break;
            case 1:
                dataFormat = DataFormat.ascii;
                break;
        switch (theINFO.colorType){
            case 0:
                epsColor = EPSColorSpace.unchangedColorSpace;
                break;
            case 1:
                epsColor = EPSColorSpace.gray;
                break;
            case 2:
                epsColor = EPSColorSpace.rgb;
                break;
            case 3:
                epsColor = EPSColorSpace.cmyk;
                break;
            case 4:
                epsColor = EPSColorSpace.postscriptColorManagement;
                break;
        switch (theINFO.fontEmbed){
            case 0:
                fontEmbedding = FontEmbedding.none;
                break;
            case 1:
                fontEmbedding = FontEmbedding.complete;
                break;
            case 2:
                fontEmbedding = FontEmbedding.subset;
                break;
        switch (theINFO.dataSent){
            case 0:
                imageData = EPSImageData.allImageData;
                break;
            case 1:
                imageData = EPSImageData.proxyImageData;
                break;
        switch (theINFO.defaultPreview){
            case 0:
                preview = PreviewTypes.none;
                break;
            case 1:
                preview = PreviewTypes.tiffPreview;
                break;
            case 2:
                preview = PreviewTypes.pictPreview;
                break;
        switch (theINFO.psLevel){
            case 0:
                postScriptLevel = PostScriptLevels.level2;
                break;
            case 1:
                postScriptLevel = PostScriptLevels.level3;
                break;
        // Setting these three to false prevents a conflict error when trying to set the opiImageReplacement value
        omitBitmaps = false;
        omitEPS = false;
        omitPDF = false;
        if (theINFO.opiReplacement){
            opiImageReplacement = true;
        else {
            opiImageReplacement = false;
            omitBitmaps = theINFO.bitmapON;
            omitEPS = theINFO.epsON;
            omitPDF = theINFO.pdfON;
* Build the main dialog box
function createMainDialog (docName, thisNum, endNum){
    var theDialog = app.dialogs.add({name:(VERSION_NAME + ": Enter the options for \"" + docName + "\"" + ((endNum==1)?"":" (" + thisNum + " of " + endNum + " documents)") )
, canCancel:true} );
    with (theDialog){
        // Left Column
        with (dialogColumns.add() ){
            with (dialogRows.add() )
                staticTexts.add({staticLabel:"Page Naming Options"} );
            with(borderPanels.add() ){
                with(dialogColumns.add() ){
                    // Radio butons for renaming convention
                    namingConvention = radiobuttonGroups.add();
                    with(namingConvention){
                        radiobuttonControls.add({staticLabel:"As Is", checkedState:(peuINFO.nameConvType == 0)} );
                        radiobuttonControls.add({staticLabel:"Add \".L\"", checkedState:(peuINFO.nameConvType == 1)} );
                        radiobuttonControls.add({staticLabel:"Odd/Even = \".F/.B\"", checkedState:(peuINFO.nameConvType == 2)} );
                        radiobuttonControls.add({staticLabel:"Odd/Even = \"LA.F/LA.B\"" , checkedState:(peuINFO.nameConvType == 3)});
                        radiobuttonControls.add({staticLabel:"Numeric Override" , checkedState:(peuINFO.nameConvType == 4)});
                with (dialogRows.add() )
                    staticTexts.add({staticLabel:""} );
                    with(dialogRows.add() ){
                    staticTexts.add({staticLabel:"Base Name"} );
                    newBaseName = textEditboxes.add({editContents:baseName, minWidth:100} );
        // Middle Column
        with (dialogColumns.add() ){
            with (dialogRows.add() )
   

RichardM0701, are you the same person as scottbentley?
I fear your response doesn't make a lot of sense. The easiest way is to put your files into a book, which will not harm them. The easiest script is often no script at all.
I don't understand your comment about separate text boxes, files contain text boxes and definitionally multiple files means multiple separate text boxes.
I do not know what you are referring to with respect to the toc update, perhaps you could reference a particular command or script, or provide a screenshot.
It sounds like now you are interested in updating multiple tables of contents in a single fell swoop -- this would appear to have nothing to do with the original question. If that's the case, please start a new thread.

Similar Messages

  • EBS R12 OA Page Export Question...

    Hi,
    I'm trying to export a seeded page to my local PC.. I'm using OA Jdeveloper version 10.1.3.1.0.. With this version of jdeveloper, export.bat was in this folder jdevbin\oaext\bin . This is what i have in my export.bat
    ===========================================
    @echo off
    REM export.bat
    REM
    REM DESCRIPTION
    REM This file is used to call the JRAD XML Export utility
    REM
    REM
    REM NOTES
    REM
    REM
    REM
    REM MODIFIED (MM/DD/YY)
    REM ayu 01/31/06 - update classpath
    REM lramados 09/01/05 - Remove JDK118 dependency.
    REM cbarrow 08/06/03 - #(3057426) Add oamdsdt.jar to classpath
    REM kaalvare 07/17/03 - Add jsp-el-api.jar to classpath
    REM lramados 07/17/03 - #(3053248)Added mdstoold.jat in the classpath
    REM cbarrow 06/09/03 - Move to RTMDS 9.0.5: add dependencies to JRAD_JAR
    REM lramados 05/07/03 - #(2627931) Support for case insensitive parameters
    REM jhsi 01/21/03 - #(2741748) Support jdk118 runtime env.
    REM jhsi 09/27/02 - #(2562017) Package structure changes for XMLExport
    REM lramados 08/13/02 - #(2500845) Rearranged the order of parameters in help
    REM lramados 08/01/02 - #(2386414) Support for displaying list of documents and package files
    REM lramados 06/25/02 - #(2418684) Changed WITHREFERENCES to WITHREFS for the sake of uniformity
    REM lramados 06/24/02 - #(2423145) Handle invalid command line parameters
    REM lramados 06/18/02 - #(2408092) Added comment as 'DO NOT CHANGE' for JRAD_ROOT
    REM lramados 06/07/02 - #(2378477) Compute JRAD_ROOT
    REM lramados 06/07/02 - Changed default USERNAME and PASSWORD to 'jdr'
    REM lramados 06/07/02 - Support for package files and directories
    REM gkonduri 04/05/02 - Creation
    REM
    :: ## This file should be in sync with the "export" shell script ##
    :: ## Please update "export" when updating this file. ##
    setlocal
    :: --------- COMPUTE JRAD_ROOT. DO NOT CHANGE THIS VALUE !! ---------
    :: -- JRAD_ROOT directory
    :: The JRAD_ROOT environment variable is computed by getting the current
    :: path and going up two directory levels to get the actual "deliver"
    :: directory. By convention, the deliver directory is called JRAD_ROOT
    set JRAD_ROOT=%~d0%~p0..\..
    :: need to set the default values for variables
    set jdk13="n"
    set middle_tier="n"
    set verbose="n"
    :: Check for any occurence of -jdk13 or jdk13=y and set the
    :: jdk13_str=y so that we have JDK13 PATH and classpath is setup.
    :start
    if %1.==. goto done
    if /i %1==-jdk13 goto jdk13_handle
    if /i %1==jdk13 goto jdk13eq_handle
    if /i %1==-middleTier goto middleTier_handle
    if /i %1==-verbose goto verbose_handle
    :: -- Finished processing the current parameter. Process the next parameter set
    set PARAMS=%PARAMS% %1
    shift
    goto start
    :jdk13eq_handle
    set PARAMS=%PARAMS% %1
    shift
    if "%1"=="y" goto jdk13_handle
    set PARAMS=%PARAMS% %1
    shift
    goto start
    :jdk13_handle
    set jdk13="y"
    set PARAMS=%PARAMS% %1
    shift
    goto start
    :middleTier_handle
    set middle_tier="y"
    shift
    goto start
    :verbose_handle
    set verbose="y"
    shift
    goto start
    :middle_tier_checking
    if %jdk13% == "n" goto jdk13_setup
    echo.
    echo.ERROR: The -middleTier option is not supported while running with -jdk13.
    echo.
    goto end
    :: ----------------- Done with the parameter processing.
    :: -- Prepare to call the migration utility
    :done
    :: -- check for using -middleTier with -jdk13
    if %middle_tier% == "y" goto middle_tier_checking
    :: --------- setup JDK and JDBC
    :jdk13_setup
    set JDBCVER=12
    set JAVA_HOME=%JRAD_ROOT%\jdk
    set CLASSPATH=%JRAD_ROOT%\jdev\appslibrt\uix2.jar
    if %middle_tier% == "y" goto middle_xdk
    set XDK_CLASSPATH=%JRAD_ROOT%\lib\xmlparserv2.jar
    goto donejdk
    :middle_xdk
    set XDK_CLASSPATH=%JRAD_ROOT%\lib\xmlparserv2.jar
    :donejdk
    set JRAD_JAR=%JRAD_ROOT%\oaext\lib\mdsdt.jar;%JRAD_ROOT%\oaext\mds\lib\mdsrt.jar;%JRAD_ROOT%\oaext\lib\oamdsdt.jar;%JRAD_ROOT%\jlib\jsp-el-api.jar;%JRAD_ROOT%\jlib\commons-el.jar;%JRAD_ROOT%\jlib\oracle-el.jar
    :: ------- JDBC classes
    set CLASSPATHJ=%JRAD_ROOT%\jdbc\lib\ojdbc14.jar;%JRAD_ROOT%\jdbc\lib\orai18n.jar
    :: ------- PATH settings
    set PATH=%JAVA_HOME%\bin;%path%
    :: ------- CLASSPATH settings
    set CLASSPATH=%CLASSPATH%;%JRAD_ROOT%\jdev\classes;%JRAD_ROOT%\jdev\appslibrt\collections.zip;%JRAD_ROOT%\jdev\appslibrt\share.jar;%JRAD_JAR%;%CLASSPATHJ%;%XDK_CLASSPATH%
    if %verbose% == "n" goto done_verbose
    echo.
    java -version
    echo.
    echo.CLASSPATH = %CLASSPATH%
    echo.
    echo on
    :done_verbose
    java oracle.jrad.tools.xml.exporter.XMLExporter /oracle/apps/icx/icatalog/shopping/webui/ShoppingHomePG -rootdir C:\Jdev12\jdevhome\jdev\myprojects -username apps -password apps -dbconnection "(description = (address_list = ( address = (community = tcp.world)(protocol = tcp)(host = shreekar.oracle.com)(port = 1521)))(connect_data= (sid = VIS)))" -includeSubpackages -mmddir C:\Jdev12\jdevbin\oaext\config\mmd -jdk13
    @echo off
    ::echo JavaProgramReturnValue = %ERRORLEVEL%
    :end
    endlocal
    ============================================
    When i modified this and ran from the command prompt on my PC. i get the following error.. Please let me know where the problem is...
    Thanks in Advance,
    Prasad
    ===============================================
    Exception in thread "main" java.lang.NoClassDefFoundError: oracle/ide/net/URLFac
    tory
    at oracle.adf.mds.dt.mds.generic.MDSDocument.save(MDSDocument.java:2438)
    at oracle.adf.mds.dt.mds.generic.MDSMetadataManager.saveDocumentToFile(M
    DSMetadataManager.java:5566)
    at oracle.adf.mds.dt.mds.generic.MDSMetadataManager.saveDocumentToFile(M
    DSMetadataManager.java:4397)
    at oracle.jrad.tools.xml.exporter.java13.Java13XMLExporter.saveDocuments
    (Java13XMLExporter.java:279)
    at oracle.jrad.tools.xml.exporter.java13.Java13XMLExporter.doExport(Java
    13XMLExporter.java:171)
    at oracle.jrad.tools.xml.exporter.XMLExporter.main(XMLExporter.java:194)

    Well,
    I have no idea what you are doing and how? The above error is a generic one. Your details about steps, your environment will make the things easier for us to suggest you properly.
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                               

  • Page Export / Import in between two workspaces in the same instance

    Hi All,
    I am trying to import a page from one application to another application in a different work space in the same instance.
    In the export file i have changed the target application id and workspace id. I am facing below error while importing the specific page.
    ORA-20001: GET_BLOCK Error. ORA-20001: Execution of the statement was unsuccessful. ORA-00001: unique constraint (FLOWS_030100.WWV_FLOW_PAGE_PLUGS_PK) violated &lt;pre&gt;declare s varchar2(32767) := null; l_clob clob; l_length number := 1; begin s := null; wwv_flow_api.create_page_plug ( p_id=&amp;gt; 190100618443233983 + wwv_flow_api.g_id_offset, p_flow_id=&amp;gt; wwv_flow.g_flow_id, p_page_id=&amp;gt; 31, p_plug_name=&amp;gt; 'Upload Scripts', p_region_name=&amp;gt;'', p_plug_templa
    Error installing page.
    Return to application.
    Any help for this.

    I got the solution for the page export/import in between 2 workspaces.
    Only thing is we need to do some template related changes in the page, item, region attributes .
    Ref: http://www.dba-oracle.com/htmldb/t_exporting_copyin_pages_screens_workspaces.

  • How to define table specific QUERY in parameter file for Export Utility

    Hi All
    I am trying to create A SINGLE parameter file for export utility. I have 2 tables and want to use a different QUERY condition for each of these tables. However i do not want to create 2 seperate parameter files for this and run/script exp twice.
    Is there a way to do it ?
    NOTE: I am using normal export utility for Version 9 and NOT oracle data pump.
    Following is an example of what i want to achive in parameter file:
    Tables = (TabA,TabB)
    # for table - TabA
    QUERY = "where id =25"
    #for table - TabB
    QUERY = " where court_id=54 and id >1"
    Please advice on syntax of parameter file so that exp knows that it has to process 1st condition for only TabA and second condition for TabB.
    Any samples/syntax examples are greately appreciated.
    thanks in advance!
    cool tech

    No there is no such alternative. Query condition is applicable to all the tables listed in TABLES parameter.
    http://download.oracle.com/docs/cd/B10501_01/server.920/a96652/ch01.htm#1005843

  • Can I export macro lists using scripting?

    I work at a business newspaper and we create a index of all company names at the end of each edition. However, in order to make the process of confirming uniformity between company names in the index and company names as they appear in a story it would be nice to export a text macro list to our network so that all reporters could use the same code for, let's say" "Example Co." Is this possible using scripting?
    Thanks,

    Hello,
    You should export the data of the 8i database using the *8i* export utility.
    Then, you import the generated dump to the 10g database with the *10g* import utility.
    Else, you may care of the character set so as to avoid conversion.
    Sorry Azar, I didn't see that you answered already.
    Hope this help.
    Best regards,
    Jean-Valentin
    Edited by: Lubiez Jean-Valentin on Jan 30, 2010 9:19 AM

  • Export metadata using report script/data export

    Hi all,
    I have a cube with 3 dimensions:
    1. Accounts
    2. Period
    3. Products
    My purpose is to create a txt file using report script (if someone have a better idea I'm willing to hear) as following:
    Accounts (level 0), Period (level 0), Products(level 0), ***Products (parent(level 0))***
    The challenge is to create an additional column with metadata information like parent of the previous column in my exapmle.
    I will be very happy if someone can help me with that.
    **I'm using essbase 11.1.2.3
    Thanks,
    Yuval

    Report Sript - it's tool for DATA
    not for MetaDATA
    For u purpose use
      *    Applied Outline Export Utility
      *    Maxl Shell command
      *    XMLA https://code.google.com/p/essbase-plsql-interface/downloads/list
    ER

  • Page Export/Import problems

    I have been trying to migrate my portal 3.0.7 development to another portal 3.0.8 development database and have been having problems with the page export and import routines. I have been following the Oracle Export / Import document and first come across the problem when importing the content area as it tries to import its content area page.
    I have then tried to export / import pages separately and consistently get the following error.
    pageimp.csh s portal30 p portal30 m reuse d pobpage.dmp c Kenny.ogg security
    Start Portal Page Import
    Please Wait...
    declare
    ERROR at line 1:
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "PORTAL30.WWUTL_POB_TRANSPORT", line 1879
    ORA-01403: no data found
    ORA-06512: at line 6
    Disconnected from Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.7.0.0 - Production
    Import of Portal Page Complete
    The Export command used was as follows:
    pageexp.csh s portal30 p portal30 n PAGE0 d pobpage.dmp c tools.ogg security
    As I am migrating from 3.0.7 to 3.0.8 I use the 3.0.7 export script and the 3.0.8 import script. For completeness I have also tried using the 3.0.7 and 3.0.8 import and export scripts, and get the same error.
    The version of Portal I am using is the Solaris version.
    When I look at the new site and click on the pages Tab no new pages are loaded as expected. Does anyone have a similar problem or am I overlooking something?
    Any suggestions?
    Thanks
    Garry
    null

    Portal 3.0.8 is now available in both NT and UNIX. So you need to upgrade both your platforms and then use export/import between the same versions. That's easier said than done as I have yet to get the export/import scripts to correctly and fully work on exporting from NT to UNIX Tru64. Originally I ran the scripts on NT and connected to the UNIX DB; however, somewhere I saw that it is more relaible to run the scripts on UNIX. So I am trying that now.
    Good luck!
    (By the way I notice that Larry declared war on complexity. The laughable irony of this is revealed by a look at these discussion boards!)
    null

  • Is the syntax correct to export tables using shell script

    can you please tell me the syntax to plaxce the exp utility in shelle script.
    Appreciate your help
    Is the syntax correct for export.
    It is throwing errors
    vi test.sh
    echo migrating data...
    echo Exporting ADDRESS_COUNTRY_CODE ...
    exp userid=scott/tiger@orcl file=address_country_code log=exp_address_country_code tables=ADDRESS_COUNTRY_CODE compress=n indexes=n constraints=n grants=n triggers=n statistics=none consistent=y query='where org_grp_i in ( 66 )' > /dev/null
    echo Exporting ASSUMPTION_DETAIL_SUMMARY ...
    exp userid=scott/tiger@orcl file=assumption_detail_summary log=exp_assumption_detail_summary tables=ASSUMPTION_DETAIL_SUMMARY compress=n indexes=n constraints=n grants=n triggers=n statistics=none consistent=y query='where org_grp_i in ( 66 )' > /dev/null

    Just follow the notes and the example in the utilities guide
    http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96652/ch01.htm#1005843
    exp scott/tiger TABLES=emp QUERY=\"WHERE job=\'SALESMAN\' and sal \<1600\"

  • Oracle11g export utility

    Hi
    Oracle9.2
    WindowsXP
    Windows machine1 has oracle 9.2 database
    Windows machine2 has oracle 11g client installation
    we have windows batch script which remotely connects any database using TNS to export the schema.
    can we use oracle11gR2 client export utility on machine1 to export schema from oracle9.2 database on machine2 ?
    does oracle support this compatibility ?

    Hi
    If you are planning to port data between two different versions of Oracle, you always use the export/import utility that belongs to lower of those two versions. To export data from 9i and import into 11g, you use both exp and imp utilities that belong to 9i version.
    If 9i and 11g are involved
    export using 9i version
    import using 9i version
    If 10g and 11g are involved
    export using 10g version
    import using 10g version
    This applies to whether you are exporting from higher version and importing into lower version or vice versa. All that you need to remember is, use the lower version utilities when working between two different Oracle versions.
    Regards
    Venkat

  • Export Utility USING PARAMETER FILE

    1st problem:
    I have created a parameter file USING NOTEPAD.All the export parameters specied in it.
    But when i executed it at command prompt as
    EXP73 USERNAME/PASSWORD
    PARFILE=<filename with .par extension>
    Its giving error
    LCC-00211:UNEXPECTED DELIMITER [NULL]
    I have tried using both valid delimiters 'SPACE' and ',' but still i am getting the same error.
    But in case of IMPORT utility i have used the same procedure and i am getting the required result.
    Please help as early as possible.
    null

    Hi,
    What u can do is chech out the options by keying in exp73 help=y. U will need to specify the options by urself on the command line.
    Example:
    exp73 file=c:\export1.dmp user=scott log=c:\export1.log <return>
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Gopinath Parthasarathy ([email protected]):
    While using Export utility at Command prompt:
    EXP73 LOG=<filename>
    it is just asking username and password after which there is no interaction and exports all the tables with logfile creation.
    Some body please help.<HR></BLOCKQUOTE>
    null

  • Error while using the export utility

    Dear all of
    I am getting the following error while using the export utility in the Oracle database 9i
    I have run the catexp.sql and catrm.sql suggested by the experts in this forum. But it did not help me. Kindly help me in solving this issue.
    FOLLOWING ARE THE ERROR ----------------------------
    EXP-00008: ORACLE error 942 encountered
    ORA-00942: table or view does not exist
    EXP-00024: Export views not installed, please notify your DBA
    EXP-00000: Export terminated unsuccessfully
    -----------------------------------------------------------------------------------------------------------------------------------

    Can you go to this discussion please.
    Re: Getting a strange error for Exp
    -aijaz

  • What's wrong with 8.1.7 export utility

    I was trying to export an Oracle 8.1.6 database by using export
    utility from Oracle 8.1.7 client. But I get a lot of errors.
    When I try to export from Oracle 8.1.6 client everything goes
    smoothly.
    What's wrong with export utility in Oracle 8.1.7 client??
    regards,
    Evan

    It is because for each new version there is more and different
    things that need to be exported so the x+1 exp utility expects
    the new things to be there and fails if they are not.
    The reason I suspect Oracle did this is that most exports are
    done on the server. It is not generaly a good idea to run exp
    across a network for performance reasons (ie you move the entire
    database). As most exports are done on the server the
    comapability is not an issue.most bullet proof solution.

  • Calling different pages in a single sap script based on conditions?

    Hi All,
             Can anyone please give me an example of how to call different pages in a single sap script based on condition. Eg., i need to call 5 differnet pages from a single sap script based on 5 company codes.
    Please help
    Regards
    Priya

    This approach to make call from SAPscript. Its concept is similar to make call to a subroutine in another program. I would presume you understand how to use USING and CHANGING parameter. =)
    SAPscript -
    /: Perform get_date in program z_at_date
    /:    using &p_year&
    /:    changing &new_date&
    /: endperform.
    program z_at_date -
    form get_date TABLES rec_in  STRUCTURE itcsy
                                    rec_out STRUCTURE itcsy..
    DATA:
       v_year type char10.
    sap script and subroutine uses itcsy structure to transmit parameters
    first parameter is incoming while second parameter is out going
    their function is like an internal table with header line
    all data types between SAPscript and subroutine are string.
    so, you might need additional conversion.
    read incoming parameter with exact name from SAPscript
      READ TABLE rec_in WITH KEY name = 'P_YEAR'.
      IF sy-subrc EQ 0.
        v_year = rec_in-value.
      ENDIF.
    to return value, use the exact name on the second structure
        CONCATENATE v_year v_year INTO v_year.
        READ TABLE rec_out WITH KEY name = 'NEW_DATE'.
        IF sy-subrc EQ 0.
          rec_out-value = v_year.
          MODIFY rec_out TRANSPORTING value WHERE name = 'NEW_DATE'.
        ENDIF.
    endform.
    Hope this helps =)

  • Why does Firefox on my Windows 7 PC hang (become unresponsive) while it waits for most pages to load or run scripts?

    Firefox hangs (becomes unresponsive) when accessing many sites including Gmail. Eventually, when hung, Firefox will throw up a window saying "WARNING: A script has become unresponsive" or, in the case of Gmail, the page itself will say "Some Gmail features have failed to load due to an internet connectivity problem."
    IE8 and Google Chrome are working normally. I've tried Firefox in safe mode, re-installing and even running Firefox portable from a USB thumb drive. Each time with the same result—Firefox hangs or becomes unresponsive while it waits for most pages to load or run scripts.
    #### PC Workstation Environment ####
    Firefox 13.0.1
    Windows 7
    Symantec Endpoint Protection 11.0.6200.754
    --

    Your problem sounds like the one that a co-worker and I started to have about the same time. Check your Symantec client management control log. You might see a line like the following.
    Date and Time Severity Level Action Test / Production Description API Class Rule Caller Process ID Caller Process Parameter User
    2012-07-30 10:48:09 AM 15 Block Production Unauthorized NT call rejected by protection driver. System Built-in rule 1608 FlashplayerPlu FuncID-B6H, R... None
    At first we thought that it was a Javascript problem until we noticed this log. The key words are 'Block' and 'FlashPlayerPlu'. This problem recently started for us, perhaps with a software push 1-2 weeks ago. Internet Explorer does not hang when accessing pages with Flash.
    The Flash page does eventually load after a long time. However, since the whole browser hangs for a while, for the most part having the Flash plugin enabled makes Firefox unusable if accessing pages with Flash.
    Disabling the Flash plugin solves the hanging problem, but I do not know what is causing the problem, nor do I know when a combination of Windows 7, Flash, and Symantec will work. Your later version of Symantec shows that we might have the problem for a while, but I do not know what customization CSC did with Symantec. My coworker did run a complete virus scan, uncovering nothing. Another co-worker is running Windows XP. She does not have the problem, but I do not know what other versions of software she is running.
    Symantec Endpoint Protection version 11.0.6100.645
    Flash version 11.3.300.268
    Firefox version 14.0.1
    Windows 7 32-bit service pack 1

  • Loading pages with non-English language scripts (e.g., Arabic)

    When I try to load a page that has non-English script, specifically Arabic, it just show's up as question marks or weird symbols. How do I get it to show the words but in Arabic or any other non-English script?

    Make sure that the correct encoding is selected.
    *Firefox > Web Developer > Character Encoding
    *View > Character Encoding

Maybe you are looking for