// введенных пользователем

switch (myPlaceOptions.selectedlndex)

{

// Расположение по размерам страницы с учетом полей case 0:

myFrame.geometricBounds = myMapBound; myFrame.fit(FitOptions.proportionally); break;

// To же сймое, только без полей case 1:

myFrame.geometricBounds = Array(myMapBound[0] + myMargins.top, myMapBound[1] + myMargins.left, myMapBound[2] - myMargins.bottom, 4> myMapBound[3] - myMargins.right); myFrame.fit(FitOptions.proportionally); break;

// Помещение в центр страницы case 2:

deltaY = (pageHeight - PDF_Height)/2; deltaX = (pageWidth - PDF_Width)/2; myFrame.move(undefined,[deltaY, deltaX]); break;

// В левый верхний угол case 3:

myFrame.move(undefined, [0, 0]) ; break;

}

}

myDlg.destroy(); Начало- традиционное: задание основных переменных. В окне импорта отображаем только файлы формата PDF. В пользовательском окне задаем опции: диапазон импортируемых страниц, страницу публикации, с которой начнется размещение страниц PDF, опции размещения (на всю страницу (включая поля), на всю страницу (без полей), в центр страницы, в левый верхний угол страницы).

В принципе, для создания диалоговых окон можно использовать разные методы, в данном случае был применен несколько отличающийся от рассматривавшихся раньше. Некоторым он покажется более простым в силу большей наглядности.

Для дальнейшей корректной работы желательно проверить введенные пользователем данные. Проверяем диапазон начальной и конечной страниц, затем подготавливаем переменные, значения которых будут использоваться

(pdfPlacePreferences .pdfCrop).

Далее определяем количество страниц, которые при необходимости потребуется добавить. Диапазон страниц задан через тире. Соответственно, оно же и будет выступать разделителем для получения стартовой и конечной страниц:

myStartPage = myRangeField.editValue.split([0]; myEndPage = myRangeField.editValue.split[1]; После чего, начиная с указанной страницы, помещаем постранично содержимое PDF. Содержимое PDF-файла, как и любой графики, как известно, помещается в контейнер (объект типа rectangle, oval и т. п.). В нашем случае выберем rectangle.

for (i = myFirstPage-1; i < newPageRange + 1; i++)

{

myPlacePref.pageNumber = i; var myMap = myDoc.pages[i]; var myFrame = myMap.rectangles.add(); Наконец, размещаем страницу PDF и масштабируем контейнер по размерам содержимого:

myFrame.place(myPDFFile) ;

myFrame.fit(FitOptions.frameToContent); В зависимости от установок пользователя выполняем необходимые преобразования.

Если выбрано размещение PDF на всю страницу (включая поля):

case 0:

myFrame.geometricBounds = myMapBound;

myFrame.fit(FitOptions.proportionally); break; case 1: Если выбрано размещение на всю страницу, но без полей - с учетом направления осей: следите, где минус, где плюс: myFrame.geometricBounds = Array (Ч> myMapBound[0] + myMargins.top, myMapBound[ 1 ] + myMargins.left, myMapBound[2] - myMargins.bottom, myMapBound[3] - myMargins.right); myFrame.fit(FitOptions.proportionally); break; case 2: Если пользователем выбрана опция помещения PDF в центре страницы, то сначала определяем величину смещения, исходя из размеров листа и страницы PDF. Используем метод move о, который имеет следующие параметры:


⇐ вернуться назад | | далее ⇒