[ID CC-CC2022] Помогите подстроить PlaceMultipagePDF.jsx

Статус
Закрыто для дальнейших ответов.

csnoj

Участник
Топикстартер
Сообщения
5
Реакции
0
Уважаемые специалисты помогите подстроить скрипт PlaceMultipagePDF.jsx - который присутствует в indesign по умолчанию. Мне нужно при импорте файла PDF сделать так чтобы все страницы размещались по центру относительно полей страницы.
Вот фрагмент кода:
(переменных X,Y по умолчанию не существует я сам их создал, но не знаю как к ним применить выравнивание)
var X = 0;
var Y = 0;
app.pdfPlacePreferences.pageNumber = myCounter;
myPDFPage = myPage.place(File(myPDFFile), [X,Y])[0];
этот фрагмент кода указывает координаты страницы [0,0].
Подскажите как настроить переменную X - чтобы помещаемая странрица располагалась по центру по горизонтали (относительно полей), и аналогично для переменной Y - по центру по вертикали относительно полей.

А может найдется специалист который напишет код с диалоговым окном, где я смогу указывать выравнивание помещаемой страницы относительно полей, или относительно страницы, или относительно разворота. Готов купить скрипт.

Возможно кто-нибудь подскажет хотя бы скрипт для выравнивания объектов по стилю.
 
Спасибо, как раз по умолчанию этот скрипт помещает по центру относительно полей
 
  • Спасибо
Реакции: csnoj
Я ошибся :) в этом скрипте нельзя выровнять PDF страницы, по центру относительно полей. Только относительно страниц. Может както отредактировать этот скрипт
 
подправил функцию myPlacePDF
правда там глючит, почему-то плейсит последнюю страницу из пдфа на предпоследнюю документа поверх другой...

Код:
function myPlacePDF(myDocument, myPage, myPDFFile){
    var myPageWidth = myDocument.documentPreferences.pageWidth;
    var myPageHeight = myDocument.documentPreferences.pageHeight;
    var myPDFPage;
    app.pdfPlacePreferences.pdfCrop = PDFCrop.cropMedia;
    var myCounter = 1;
    var myBreak = false;
    while(myBreak == false){
        if(myCounter > 1){
            myPage = myDocument.pages.add(LocationOptions.after, myPage);
        }
        var y_MarginTop = myPage.marginPreferences.top;
        var y_MarginBottom = myPage.marginPreferences.bottom;
        var x_MarginLeft = myPage.marginPreferences.left;
        var x_MarginRight = myPage.marginPreferences.right;
        app.pdfPlacePreferences.pageNumber = myCounter;
        myPDFPage = myPage.place(File(myPDFFile), [0,0]);

        myPDFPage[0].parent.geometricBounds = [y_MarginTop, x_MarginLeft, myPageHeight-y_MarginBottom, myPageWidth-x_MarginRight];
        myPDFPage[0].fit (FitOptions.CENTER_CONTENT);
        myPDFPage[0].fit (FitOptions.FRAME_TO_CONTENT)

        if(myCounter == 1){
            var myFirstPage = myPDFPage[0].pdfAttributes.pageNumber;
        }
        else{
            if(myPDFPage[0].pdfAttributes.pageNumber == myFirstPage){
                myPage.remove();
                myBreak = true;
            }
        }
        myCounter = myCounter + 1;
    }
}
 
Спасибо за помощь. Я взял ваш код "function myPlacePDF" заменил всю эту функцию однако совсем не правильно работает.
1) В ставляет страницы только на четную страницу.
2) Абсолютно не выравнивает страницу по центру оносительно полей, а как попало 'hz'
 

Не по теме:
ну значит хороший повод вам разобраться самому ))
отлаживать реально некогда...

 
а вы мне можете написать как называется объектная модель выравнивание по горизонтали центер (относительно полей), выравнивание по вертикали центер (относительно полей)
 
нет такого в индизайне...
 
Не мучьте дитю, напишите отдельный скрипт центровки фреймов с pdf. Исправлять чужой код -- то еще приятное времяпрепровождение.
 
  • Спасибо
Реакции: csnoj и vbatushev
Статус
Закрыто для дальнейших ответов.