เนื่องจากหมายเลขหน้าสิ่งนี้อาจไม่ใช่โซลูชันที่สมบูรณ์แบบ แต่นี่คือวิธีแก้ปัญหาที่ฉันใช้ในการเขียนสคริปต์:
ดาวน์โหลดไฟล์ตัวอย่างนี้และบันทึกลงในระบบของคุณ เป็น IDML จาก CS5 ดังนั้นจึงควรใช้งานได้จาก CS4 +
คุณจะสังเกตเห็นในหน้า 3 และ 4 ว่ามีข้อความสีชมพูขนาดใหญ่ที่เขียนว่า DRAFT:
ถ้าคุณดึงScript Label
แผง ( Window
> Utilities
> Script Label
) คุณจะเห็นว่ามันมีข้อความเป็น "DRAFT_LABEL"
ตอนนี้ใช้สคริปต์ต่อไปนี้คัดลอก / วางลงในโปรแกรมแก้ไขข้อความและบันทึกลงในไดเรกทอรี Scripts ของคุณ (เช่นไฟล์. js หรือ. jsx ไม่สำคัญ):
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++;
}
ก่อนที่คุณจะเรียกใช้สคริปต์บันทึกเอกสาร จากนั้นเรียกใช้!
ฉันเป็นนักออกแบบที่เขียนสคริปต์และไม่ใช่วิธีอื่นดังนั้นนี่อาจไม่ใช่โค้ดที่หรูหราที่สุด แต่สิ่งที่มันทำคือการสแกนเอกสารของคุณสำหรับรายการเพจที่มีแท็ก "DRAFT_LABEL" จากนั้นจะเก็บหมายเลขหน้านั้นไว้ในอาร์เรย์ เมื่อสแกนเสร็จแล้วจะลบหน้าที่เหมาะสม
จากนั้นคุณจะเหลือไฟล์ใหม่ที่ลบหน้าร่างออก!