Sorry for making you crazy with these extra-long scripts, but I finally fixed it, and I recommend you use the new code.
Now the script honors blank pages and packages it along (so books and the like don’t get messed up).
//created by Ari S. -- designerjoe@outlook.com
// Package entire document individually by the amount of pages at a time that you want
app.scriptPreferences.enableRedraw = false;
var srcDoc = app.activeDocument;
var srcTitle = srcDoc.name;
var srcPages = srcDoc.pages;
var pgLength = srcPages.length;
var srcW = srcDoc.documentPreferences.pageWidth;
var srcH = srcDoc.documentPreferences.pageHeight;
var srcPgLength = srcPages.length;
var start = 0;
var range, end, newDocName, isEnd, fileName;
// ------- HERE YOU CAN CHANGE ANY PACKAGING SETTING THAT YOU WANT. TRUE means 'ON', and FALSE means 'OFF': ---------
var copyingFonts = true;
var copyingLinkedGraphics = true;
var copyingProfiles = true;
var updatingGraphics = true;
var includingHiddenLayers = true;
var ignorePreflightErrors = true;
var creatingReport = true;
var includeIDML = true;
var includePDF = false;
var pdfStyle = "";
var forceSave = true;
var myDialog = app.dialogs.add({name:"Package Export Range", canCancel:true});
with (myDialog) {
with(dialogColumns.add()) {
with(dialogRows.add()) {
staticTexts.add ({staticLabel:"Enter the amount of pages you want to package at a time"});
with(dialogRows.add()) {
var myRangeBox = integerEditboxes.add({editValue:1});
}
}
}
}
if (myDialog.show() == true) {
range = myRangeBox.editValue;
if (range == 0) {
alert("0 is not a range!...");
myDialog.destroy();
exit();
}
else if (range > pgLength) {
alert("Range can't be more than the amount of pages");
myDialog.destroy();
exit();
}
run();
}
else {
myDialog.destroy();
exit();
}
function run() {
while (!isEnd) {
var newDoc = app.documents.add({pageWidth: srcW, pageHeight: srcH});
newDoc.masterSpreads[0].baseName = "garbage_master";
end = start + range;
if (end >= srcPages.length) {
end = srcPages.length;
isEnd = true;
}
var firstPage = srcPages[start];
var lastPage = srcPages[end - 1];
for (var j = start; j < end; j++) {
var srcPage = srcPages[j];
var newPage;
if (j == start) {
newPage = srcPage.duplicate(LocationOptions.BEFORE, newDoc.pages[0]);
for (var k = newDoc.pages.length - 1; k > 0; k--) {
newDoc.pages[k].remove();
}
}
else {
newPage = srcPage.duplicate(LocationOptions.AFTER, newDoc.pages[-1])
}
srcMaster = srcPage.appliedMaster;
var newMaster;
try {
newMaster = newDoc.masterSpreads.item(srcMaster.name);
newMaster.name;
}
catch (myError) {
newMaster = srcMaster.duplicate(undefined, newDoc);
}
newPage.appliedMaster = newMaster;
}
newDoc.masterSpreads[0].remove();
if (firstPage.side === PageSideOptions.LEFT_HAND) {
newDoc.documentPreferences.startPageNumber = 2
}
if (newDoc.pages.length == 1) {
fileName = "Page " + firstPage.name;
}
else {
fileName = "Pages " + firstPage.name + " - " + lastPage.name;
}
createPackage(newDoc);
start += range;
if (start == srcPages.length) {
isEnd = true;
}
}
}
function createPackage(myNewDoc) {
var targetFolder = new File("~/Desktop/" + srcTitle +"/" + fileName + "/");
var flag = Folder(targetFolder).create();
var versionComments = srcTitle + " " + fileName;
if ( flag === true){
var garbageFolder = new File("~/Desktop/" + srcTitle +"/Delete This Folder/");
Folder(garbageFolder).create();
myNewDoc.save(new File("~/Desktop/" + srcTitle + "/Delete This Folder/" + fileName + ".indd"))
myNewDoc.packageForPrint (
targetFolder,
copyingFonts,
copyingLinkedGraphics,
copyingProfiles,
updatingGraphics,
includingHiddenLayers,
ignorePreflightErrors,
creatingReport,
includeIDML,
includePDF,
pdfStyle,
versionComments,
forceSave);
myNewDoc.close(SaveOptions.no);
var myTempFiles = Folder(garbageFolder).getFiles();
for (l = myTempFiles.length - 1; l >= 0; l--) {
myTempFiles[l].remove();
Folder(garbageFolder).remove();
}
}
}