// введенных пользователем
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 о, который имеет следующие параметры: