Debido a la cuestión del número de página, esta podría no ser una solución perfecta. Pero esta es la solución que se me ocurrió usando secuencias de comandos:
Descargue este archivo de muestra y guárdelo en su sistema. Es IDML de CS5, por lo que debería funcionar desde CS4 +.
Notarás en las páginas 3 y 4 que hay un gran bloque de texto rosado que dice DRAFT:
Si acabas de llegar al Script Label
panel ( Window
> Utilities
> Script Label
), verá que está etiquetado como "DRAFT_LABEL".
Ahora, tome el siguiente script, cópielo / péguelo en un editor de texto y guárdelo en su directorio de Scripts (como archivo .js o .jsx, no importa):
try // to get the path of the file that's active when you run the script.
{
var OpenFilePath = app.documents.item(0).fullName; // Declare a variable representing the open document.
var OpenFile = app.open(File(OpenFilePath), true, 1332757360); // Create a duplicate to work with. In Adobe's world, "1332757360" means "open a copy".
}
catch (err)
{
var OpenFile = "error";
alert("Please save this file before using the script.");
}
var OpenFileLength = OpenFile.pages.length; // Get number of pages of open document and master file.
// These help make the array that stores master markers.
var ArrayCounter = 0;
var FindTheMarkers = new Array();
for (var i=0; i<OpenFileLength; i++) // Loop through every page.
{
ItemsOnPage = OpenFile.pages.item(i).pageItems.length; // Get the number of items on the page.
for (var j=0; j<ItemsOnPage; j++) // Loop through every item.
{
var ScriptLabel = OpenFile.pages.item(i).pageItems.item(j).label;
if (ScriptLabel != "" && ScriptLabel.indexOf("DRAFT_LABEL") == 0) // If the item has a label and it equals what we want it to,
{
FindTheMarkers[ArrayCounter] = i; // Put the page number in the array.
ArrayCounter++; // Advance the counter for next time!
}
}
}
var numberToSubtract = 0; // This compensates for screwing up the page counter when you remove a page.
for (i=0; i<FindTheMarkers.length; i++) // Loop through the array and remove pages!
{
OpenFile.pages.item(FindTheMarkers[i] - numberToSubtract).remove();
numberToSubtract++;
}
Antes de ejecutar el script, guarde el documento . ¡Entonces ejecútalo!
Soy un diseñador que escribe y no al revés, por lo que este podría no ser el código más elegante. Pero lo que está haciendo es escanear a través de su documento en busca de elementos de página que tengan la etiqueta "DRAFT_LABEL", luego almacena ese número de página en una matriz. Una vez que termina de escanear, elimina las páginas apropiadas.
¡Entonces te queda un nuevo archivo que tiene las páginas de borrador eliminadas!