Bởi vì điều số trang, đây có thể không phải là một giải pháp hoàn hảo. Nhưng đây là giải pháp tôi đã đưa ra bằng cách sử dụng kịch bản:
Tải về tập tin mẫu này và lưu vào hệ thống của bạn. Đó là IDML từ CS5, vì vậy nó sẽ hoạt động từ CS4 +.
Bạn sẽ nhận thấy trên trang 3 và 4 rằng có một khối văn bản màu hồng lớn có chữ DRAFT:
Nếu bạn kéo lên Script Label
bảng điều khiển ( Window
> Utilities
> Script Label
), bạn sẽ thấy rằng nó sẽ được dán nhãn là "DRAFT_LABEL".
Bây giờ, lấy đoạn script sau, sao chép / dán vào trình soạn thảo văn bản và lưu nó vào thư mục ScScript của bạn (dưới dạng tệp .js hoặc .jsx, không thành vấn đề):
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++;
}
Trước khi bạn chạy tập lệnh, lưu tài liệu . Sau đó chạy nó!
Tôi là một nhà thiết kế kịch bản và không phải là người khác, vì vậy đây có thể không phải là mã thanh lịch nhất. Nhưng những gì nó đang làm là quét qua tài liệu của bạn để tìm các mục trang có thẻ "DRAFT_LABEL", sau đó nó lưu số trang đó trong một mảng. Sau khi quét xong, nó sẽ xóa các trang thích hợp.
Sau đó, bạn còn lại một tệp mới đã xóa các trang nháp!