[ID CC-CC2021] Скрипт InDesign вставка pdf по списку

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

1kuperster

Участник
Топикстартер
Сообщения
51
Реакции
1
Есть список файлов в .txt надо по этому списку вставить .pdf в рабою область inD. Размеры .pdf разные от 50 x 90 до 420 x 297. Размеры .pdf все прописаны в названии .pdf. Каждый pdf должен быть вставлен в отдельный фрейм. Пример .txt 85880-1.txt
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Вот как раз эта задача через датамерж реализуема
За одним маленьким но, которое портит все дело
Размеры .pdf все прописаны в названии .pdf.
В такой постановке тоже скриптовать придется
 

dev9togo

Участник
Сообщения
130
Реакции
44
область каждый раз разная?

надо взять все PDF-ки из папки и вставить? или только те что в списке?
 

1kuperster

Участник
Топикстартер
Сообщения
51
Реакции
1
область каждый раз разная?

надо взять все PDF-ки из папки и вставить? или только те что в списке?
Из папки. Да разная 990 x 630 или 990 x 680 или 427 x 630.
Главное чтобы pdf во фрейм с правильным размером становились.
 

dev9togo

Участник
Сообщения
130
Реакции
44
Надо вставить PDF-ки в отведённые им фреймы согласно размеров?
Кто фреймы рисует?
Есть подозрение что спуск полос через ID делаете.
 

1kuperster

Участник
Топикстартер
Сообщения
51
Реакции
1
Надо вставить PDF-ки в отведённые им фреймы согласно размеров?
Кто фреймы рисует?
Есть подозрение что спуск полос через ID делаете.
Так и есть.
Фреймы приходится рисовать самому.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Вообще говоря, для более правильного понимания задачи вам бы следовало прикрепить не текстовый файл,а шаблон с заполняемыми фреймами. Или вы на самом деле хотите скрипт который бы сам полосу оптимально заполнял имеющимися макетами????
 

1kuperster

Участник
Топикстартер
Сообщения
51
Реакции
1
Так и есть.
Фреймы приходится рисовать самому.
Интересует возможность упростить это рутине действие с помощью скриптов
Есть работающий скрипт но проблема он только ставит в заданный размер фрейма в скрипте. Приходится сортировать по размерам.
 

1kuperster

Участник
Топикстартер
Сообщения
51
Реакции
1
Вообще говоря, для более правильного понимания задачи вам бы следовало прикрепить не текстовый файл,а шаблон с заполняемыми фреймами. Или вы на самом деле хотите скрипт который бы сам полосу оптимально заполнял имеющимися макетами??
Оптимально нет. Оптимально я сам это делаю. Надо по списку или с выбранной папки вставать pdf с размером.
 

Вложения

  • 2017-03-30_14-47-23.png
    2017-03-30_14-47-23.png
    26.2 КБ · Просм.: 964

dev9togo

Участник
Сообщения
130
Реакции
44
Есть работающий скрипт но проблема он только ставит в заданный размер фрейма в скрипте. Приходится сортировать по размерам.
Держите кусок кода определяющий формат.
Код:
var myPDFFile = File.openDialog("Choose a PDF File", "PDF files:*.PDF"); 
if(myPDFFile == "" || myPDFFile == null) 
  exit(0); 
myDocument = app.documents.add(); 
myPage = myDocument.pages.item(0); 
myPlacePDF(myDocument, myPage, myPDFFile); 
 
w = (myDocument.allGraphics[0].geometricBounds[2]) - (myDocument.allGraphics[0].geometricBounds[0]);
h = (myDocument.allGraphics[0].geometricBounds[3]) - (myDocument.allGraphics[0].geometricBounds[1]);
 w = Math.round(w);
 h = Math.round(h);
 $.writeln (w);
 $.writeln (h);
  myDocument.close();
function myPlacePDF(myDocument, myPage, myPDFFile){ 
    var myPDFPage =1;
    app.pdfPlacePreferences.pdfCrop = PDFCrop.cropMedia;
    var myCounter = 1;
    var myBreak = false;
        myPDFPage = myPage.place(File(myPDFFile), [0,0])[0];
}
 
  • Спасибо
Реакции: 1kuperster

1kuperster

Участник
Топикстартер
Сообщения
51
Реакции
1
Держите кусок кода определяющий формат.
Код:
var myPDFFile = File.openDialog("Choose a PDF File", "PDF files:*.PDF");
if(myPDFFile == "" || myPDFFile == null)
  exit(0);
myDocument = app.documents.add();
myPage = myDocument.pages.item(0);
myPlacePDF(myDocument, myPage, myPDFFile);
 
w = (myDocument.allGraphics[0].geometricBounds[2]) - (myDocument.allGraphics[0].geometricBounds[0]);
h = (myDocument.allGraphics[0].geometricBounds[3]) - (myDocument.allGraphics[0].geometricBounds[1]);
 w = Math.round(w);
 h = Math.round(h);
 $.writeln (w);
 $.writeln (h);
  myDocument.close();
function myPlacePDF(myDocument, myPage, myPDFFile){
    var myPDFPage =1;
    app.pdfPlacePreferences.pdfCrop = PDFCrop.cropMedia;
    var myCounter = 1;
    var myBreak = false;
        myPDFPage = myPage.place(File(myPDFFile), [0,0])[0];
}
Это немного не то.
Нет возможности выбрать несколько файлов например 70 .pdf.
Вставка происходит с исходным размером .pdf но не с тем что указан в названии.
Быстрее crl+d
 

NNN5

Модератор
15 лет на форуме
Сообщения
1 256
Реакции
1 012
Все имена файлов, содержащие размеры, полезно скопировать (махом) через, например, Total Commander в Excel.
Там разобрать текст по столбцам, отсортировать. Можно присвоить условные типы — типоразмеры (у вас их какое-то ограниченное количество).
Потом делать в Total Commander выбор по маске только тех файлов, которые относятся к одному типу. И их уже либо кидать на Data Merge, либо делать Place.
Важно, что у вас будут отобраны файлы определённого размера, и вы не будете рассуждать, в какие фреймы их помещать.
 
Статус
Закрыто для дальнейших ответов.