Листинг 9.4. Импорт многостраничного PDF-файла
with (арр)
<
if (documents.length < 1) {
alert("Нет открытых документов"); exit();
}
var myDoc = activeDocument;
var myPDFFile = File.openDialog('Выберите файл', 'Файлы PDF: *.pdf'); if(myPDFFile == null) { exit();
)
var myDlg = dialogs.add({name: "Импорт многостраничного PDF"}) myLabelColumn = myDlg.dialogColumns.add() with (myLabelColumn) {
staticTexts.add({StaticLabel:"Диапазон страниц:"));
staticTexts.add({staticLabel:"Начальная страница для помещения:"});
staticTexts.add()
staticTexts.add({staticLabel:"Опции размещения:"}); staticTexts.add({staticLabel:"Границы:"});
)
myControlsColumn = myDlg.dialogColumns.add() with(myControlsColumn){
var myRangeField = integerEditboxes.add({editValue: 1-, minWidth:60}) ;
var myFirstPage = integerEditboxes.add({editValue: 1, minWidth:60}); staticTexts.add()
var myPlaceOptions = dropdowns.add({stringList:["На всю страницу (включая поля)", "На всю страницу (без полей)",
"В центр страницы", "В левый верхний утол страницы"], selectedlndex:2}); var myCropOptions = dropdowns.add({stringList:['Bounding Box', 'Artwork', 'Bleed', 'Media', 'Crop', 'Trim'], selectedlndex:3});
}
var myResult = myDlg.show(); if(ImyResult) exit();
if(myRangeField.editValue.split("-")[0] == 0) { alert("Начальная страница равна 0"); exit();
}
if (myFirstPage.editValue = 0) (
alert("Значение стартовой страницы для размещения PDF в публикации равно 0"); exit () ;
}
if (myRangeField.editValue.split("-")[1] == '1) { alert("Конечная страница PDF не указана"); exit();
}
// Конец формирования диалога
var myPlacePref = pdfPlacePreferences;
// Считывание введенных значений with(myPlacePref){
switch (myCropOptions.selectedlndex) { case 0:
pdfCrop = PDFCrop.cropContent; break; case 1:
pdfCrop = PDFCrop.cropArt; break; case 2:
pdfCrop = PDFCrop!cropBleed; break; case 3:
pdfCrop = PDFCrop.cropMedia; break; case 4:
pdfCrop = PDFCrop.cropPDF; break; case 5:
pdfCrop = PDFCrop.cropTrim; break;
}
transparentBackground = true
myRange = myRangeField.editValue.split("-"); myStartPage = myRange[0] myEndPage = myRange[1]
// Определение конечного числа страниц
newPageRange = (myEndPage - myStartPage) + myFirstPage
// Добавление требуемых страниц while(newPageRange > myDoc.pages.length) { myDoc.pages.add(LocationOptions.atEnd);
for (i = myFirstPage-1; i < newPageRange + 1; i++) {
myPlacePref.pageNumber = i; var myMap = myDoc.pages[i]; var myFrame = myMap.rectangles.add();
// Вставка страницы
myFrame.place(myPDFFile);
myFrame.fit(FitOptions.frameToContent);
var myBounds = myFrame.geometricBounds;
var myMapBound = myMap.bounds;
var myMargins = myMap.marginPreferences;
PDF_Height = myBounds[2] - myBounds[0];
PDF_Width = myBounds[3] - myBounds[1];
pageHeight = myDoc.documentPreferences.pageHeight; pageWidth = myDoc.documentPreferences.pageWidth;
// Установка необходимых параметров в зависимости от значений,