Это скрипт InDesign для преобразования indd-файлов в jpg, а затем экспорт и переименование их в папку на моем рабочем столе. Все работает отлично, но есть одна часть, которую я пытаюсь сделать, которая только экспортирует страницы, на которых не применяется Мастер-страница «H-Advertising». Я написал инструкцию if, которая проверяет, какая главная страница была применена к текущей странице текущего документа, и должна якобы экспортировать только эту страницу, если у нее не было «H-Advertising», применяемого в качестве главной страницы. Я знаю, что цикл работает, если я добавляю другое условие (например, если (3! = 4)), и он также может предупреждать основную страницу каждой страницы, но она, похоже, идет вперед и добавляет страницу в массив страниц, которые я хочу экспортировать, несмотря ни на что.Почему инструкция if не выполняется корректно, даже если условие выполнено?
Main();
function Main() {
// Check to see whether any InDesign documents are open.
// If no documents are open, display an error message.
if (app.documents.length > 0) {
app.jpegExportPreferences.exportingSpread = false;
//makes sure there is a book open
if (app.books.length != 1)
alert("This only works when you have one (1) book open and the first file in that book open");
else
//loop through the book's stories
for (b = 0; b < app.books[0].bookContents.length; b++) {
// initialize pages variable
var pages = [];
// loop through the pages in the active document
for (i = 0; i < app.activeDocument.pages.length; i++) {
// initialize variable holding document name, and then rename as follows
var myDocumentName = app.books[0].bookContents[b].fullName;
c = app.open(app.books[0].bookContents[b].fullName);
myDocumentName = myDocumentName.name.replace("indd", "jpg");
myDocumentName = myDocumentName.replace("WN16", "WN16_");
// get value of the current page's applied master
if (app.activeDocument.pages[i].appliedMaster != null) {
var appliedMaster = app.activeDocument.pages[i].appliedMaster.name;
}
// if it's not an advertising page, get the page number and add it to an array containing page numbers to export
if (appliedMaster !== "H-ADVERTISING" && appliedMaster!= "[None]" && appliedMaster!= null) {
alert(appliedMaster);
pages.push(app.activeDocument.pages[i].name);
printpages = pages.join(",");
// set the pageString of pages to export as jpegs
app.jpegExportPreferences.pageString = printpages;
// export all the pages using the export page range page string
c.exportFile(ExportFormat.JPG, File(Folder.desktop + "/EDIT_Jpgs/" + myDocumentName));
}
}
};
Итак, просто с первого взгляда, _possible_, вы сталкиваетесь с проблемами вокруг единственного равного а не сравнение ('! =') вместо двойного равного не сравнения ('! =='). Первый делает автоматическое преобразование типов под капотом, что может дать неожиданные результаты. Это просто попытка попробовать, но я не делал тщательного анализа вашего кода. –
нет такой вещи, как «if loop» - просто sayin –
Также попробуйте записать переменную applyMaster в журнал или оповещение и сравнить ее ... убедитесь, что это все прописные и лишние пробелы и т. Д.? (чтобы соответствовать вашему ожиданию того, что должно быть) –