#target indesign //-------------------------------------------------- if (parseInt (app.version) < 5) errorM ('This script requires CS3.'); main(); //-------------------------------------------------- function main() { pdfPreset = pick_preset() book = check_book(); book2pdf (book); } function book2pdf (b) { var chapters = b.bookContents.everyItem().fullName; var pbar = progress_bar (chapters.length, 'Exporting chapters to PDF...') for (var i = 0; i < chapters.length; i++) try { pbar.value = i+1; app.open (chapters[i]); var f = new File (chapters[i].fullName.replace (/indd$/, 'pdf')); app.activeDocument.exportFile ( ExportFormat.pdfType, f, false, pdfPreset ); app.activeDocument.close (SaveOptions.no); } catch(_){}; } function check_book() { if (app.books.length > 1) errorM ('Open just one book.'); else if (app.books.length == 0) errorM ('No open books.'); return app.books[0] } function pick_preset () { var presets = app.pdfExportPresets.everyItem().name; var w = new Window ('dialog'); w.alignChildren = 'right'; var panel = w.add ('panel'); panel.orientation = 'row'; panel.add ('statictext', undefined, 'History: '); var list = panel.add ('dropdownlist', undefined, presets); list.preferredSize = [300,20]; list.selection = 0; var buttons = w.add ('group'); buttons.alignChildren = 'right'; buttons.orientation = 'row'; okButton = buttons.add ('button', undefined, 'OK'); buttons.add ('button', undefined, 'Cancel', {name: 'cancel'}); if (w.show() == 1) return String (list.selection); else exit(); } function progress_bar (stop, title) { w = new Window ('palette', title); pb = w.add ('progressbar', undefined, 0, stop); pb.preferredSize = [300,20]; w.show() return pb; } function errorM (m) { alert (m); exit(); }