Итак, следующий скрипт — это модифицированная версия скрипта, который я нашел здесь . Его цель состоит в том, чтобы:
На данный момент единственное, что мне удалось заставить работать, это пункт № 1. По какой-то причине этот сценарий не будет экспортировать обрез, что бы я ни делал, хотя собственная документация InDesign предполагает, что то, что у меня есть, должно работать. Кроме того, я не смог понять, как правильно обрабатывать пункты 3 и 4; Я попытался изменить функцию GetDate, чтобы справиться с этим, но это не сработало (как видно из закомментированных строк).
Итак, гуру сценариев StackExchange, что я делаю неправильно? Любая помощь будет высоко оценена. Спасибо!
* Примечание. На самом деле мне не нужно добавлять дату к имени файла; Я просто использовал функцию GetDate в качестве контейнера для кода извлечения имени, так как эта функция уже была в коде.
var scriptName = "Export current page to PDF - 1.0";
Main();
//===================================== FUNCTIONS ======================================
function Main() {
if (app.documents.length == 0) ErrorExit("Please open a document and try again.", true);
var doc = app.activeDocument;
if (app.activeWindow.constructor.name != "LayoutWindow") ErrorExit("Unable to get page number. Quit story editor.", true);
var page = app.activeWindow.activePage;
with (app.pdfExportPreferences){
pageRange = page.name;
viewPDF = true;
bleedBottom = app.activeDocument.documentPreferences.
documentBleedBottomOffset;
bleedTop = app.activeDocument.documentPreferences.documentBleedTopOffset;
bleedInside = app.activeDocument.documentPreferences.
documentBleedInsideOrLeftOffset;
bleedOutside = app.activeDocument.documentPreferences.
documentBleedOutsideOrRightOffset;
//If any bleed area is greater than zero, then export the bleed.
if(bleedBottom == 0 && bleedTop == 0 && bleedInside == 0 &&
bleedOutside == 0){
useDocumentBleedWithPDF = true;
}
else{
useDocumentBleedWithPDF = false;
}
}
var fileName = doc.name.replace(/\.indd$/, "") + "_" + GetDate() + ".pdf";
var file = new File("~/Desktop/" + fileName);
var myExportPreset = app.pdfExportPresets.item("[High Quality Print]");
alert (myExportPreset);
doc.exportFile(ExportFormat.pdfType, file, false, myExportPreset);
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
function GetDate() {
//var page = app.activeWindow.activePage;
//var nameFrame = page.textFrames.item(1).contents;
//var employeeName = nameFrame.substr(2)
var date = new Date();
if ((date.getYear() - 100) < 10) {
var year = "0" + new String((date.getYear() - 100));
}
else {
var year = new String((date.getYear() - 100));
}
var dateString = (date.getMonth() + 1) + "-" + date.getDate() + "-" + year + "_" + date.getHours() + "-" + date.getMinutes() + "-" + date.getSeconds();
return dateString;
}
Что касается кровотечения, вы почти у цели. Вы инвертировали логику в тесте на обтекание, и вам не следует использовать предустановку, поскольку вы уже устанавливаете настройки в своем with
блоке pdfExportPreferences.
Возможно, если вы хотите использовать предустановку, вам следует загрузить предустановку перед блоком with
, но я этого не проверял.
Так:
//If any bleed area is greater than zero, then export the bleed.
if(bleedBottom == 0 && bleedTop == 0 && bleedInside == 0 &&
bleedOutside == 0){
Должно быть:
if(bleedBottom != 0 && bleedTop != 0 && bleedInside != 0 &&
bleedOutside != 0){
И:
var myExportPreset = app.pdfExportPresets.item("[High Quality Print]");
alert (myExportPreset);
doc.exportFile(ExportFormat.pdfType, file, false, myExportPreset);
Должно быть:
doc.exportFile(ExportFormat.pdfType, file, false);
Вам необходимо продублировать предустановку «[Высококачественная печать]» и внести любые изменения, поскольку, в отличие от настройки pageRange
, настройки выпуска за обрез будут переопределены предустановкой ExportPreset. Когда закончите, вы можете удалить свой дублированный пресет:
var myExportPreset = app.pdfExportPresets.item("[High Quality Print]").duplicate();
myExportPreset.useDocumentBleedWithPDF = true;
doc.exportFile(ExportFormat.PDF_TYPE, myFile, false, myExportPreset );
myExportPreset.remove();
Йорик
ajw-art
ajw-art
Йорик
Бруно