Как используя XML сделать спуск?

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72
Нужно используя XML с данными (название файла макета, размер макета, расположение макета на листе) сделать спуск
Стандартными средствами S&R это сделать не выйдет, т.к. : файлы разного размера, есть порядок размещения (в строку, в столбец, змейкой с заданным кол-ом столбцов)

Знаю что используя таск Export to nested layout, можно на выходе получить XML вида:
XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<LAYOUT>
<LAYOUTNAME>123456_Dgen_115gr_LAYOUT</LAYOUTNAME>
<CUTFILE>\\MyFileServer\Data\12. Esko\iCut\123456_Dgen_115gr.cut</CUTFILE>
<PDFFILE>\\caldera-1\Public\hotfolder\Dgen\123456_Dgen_115gr.pdf</PDFFILE>
<TotalLength>151114.9</TotalLength>
<WIDTH>3200</WIDTH>
<HEIGHT>20960.49</HEIGHT>
<COPIES>1</COPIES>
<SUBSTRATE>Flag 115gr</SUBSTRATE>
<YIELD number="5.755446E7"/>
<JOBS>
      <JOB>
         <JOBNAME>14_04_16_1749405_OnlineOrder.pdf</JOBNAME>
         <NUMBERUP>3</NUMBERUP>
         <REMAINING>0</REMAINING>
         <VSIZE>2366.28</VSIZE>
         <HSIZE>759.0</HSIZE>
         <POSITIONS>
            <POSITION>
               <V>13611.11</V>
               <H>42.82</H>
               <SCALE>10.0</SCALE>
               <ANGLE>0.0</ANGLE>
            </POSITION>
            <POSITION>
               <V>15977.4</V>
               <H>1580.82</H>
               <SCALE>10.0</SCALE>
               <ANGLE>180.0</ANGLE>
            </POSITION>
            <POSITION>
               <V>13611.11</V>
               <H>1600.82</H>
               <SCALE>10.0</SCALE>
               <ANGLE>0.0</ANGLE>
            </POSITION>
         </POSITIONS>
         <CustomerId/>
         <ExtId>ba7d086a-287f-431e-b25d-fbe28dac4b08</ExtId>
         <Folder>\\MyFileServer\Data\12. Esko\Dgen_gangrun</Folder>
         <GroupingKey1/>
         <GroupingKey2>F0306</GroupingKey2>
         <GroupingKey3/>
         <GroupingKey4>Dgen</GroupingKey4>
         <Id>5dca4cd9-9dae-49e9-a99c-84281e5d4c55</Id>
         <PageCount number="1"/>
         <PageNr number="1"/>
         <Rotation>any</Rotation>
         <Substrate>Flag 115gr</Substrate>
      </JOB>
      <JOB>
         <JOBNAME>14_04_16_1749401_OnlineOrder.pdf</JOBNAME>
         <NUMBERUP>3</NUMBERUP>
         <REMAINING>0</REMAINING>
         <VSIZE>2366.28</VSIZE>
         <HSIZE>759.0</HSIZE>
         <POSITIONS>
            <POSITION>
               <V>15768.16</V>
               <H>42.82</H>
               <SCALE>10.0</SCALE>
               <ANGLE>0.0</ANGLE>
            </POSITION>
            <POSITION>
               <V>18134.45</V>
               <H>1580.82</H>
               <SCALE>10.0</SCALE>
               <ANGLE>180.0</ANGLE>
            </POSITION>
            <POSITION>
               <V>15883.71</V>
               <H>3157.2</H>
               <SCALE>10.0</SCALE>
               <ANGLE>180.0</ANGLE>
            </POSITION>
         </POSITIONS>
         <CustomerId/>
         <ExtId>2569cec2-68e8-490a-a353-c1a5cc8e950c</ExtId>
         <Folder>\\MyFileServer\Data\12. Esko\Dgen_gangrun</Folder>
         <GroupingKey1/>
         <GroupingKey2>F0305</GroupingKey2>
         <GroupingKey3/>
         <GroupingKey4>Dgen</GroupingKey4>
         <Id>11bc910b-a7f6-4e2a-86f8-975c76dc1d1c</Id>
         <PageCount number="1"/>
         <PageNr number="1"/>
         <Rotation>any</Rotation>
         <Substrate>Flag 115gr</Substrate>
      </JOB>
и т.д.

Но я не нашел ни одного таска, позволяющего используя XML, сделать лейоут.
Возможно, требуется конвертировать XML -> JDF.
Прошу помощи
 

ACTPOHOM

10 лет на форуме
Сообщения
2 801
Оценка реакций
1 094
Увы, но XML вверху это выходной документ, сопровождающий готовый спуск из GangRun
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72
Т.е. АЕ может выдать XML готового спуска, но при наличии XML, разместить по нему PDF на листе не сможет?
 

ACTPOHOM

10 лет на форуме
Сообщения
2 801
Оценка реакций
1 094
ну типа это репорт, а не задание на верстку.можно закинуть им идею, может внедрят.
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72
Хорошо бы они добавили такую возможность.

А пока я вижу несколько решений:
1. Генерируем PS файл (он в текстовом формате, тут проблем нет), и дальше его нормализуем.
2. Генерируем PDF через Python.
 

romyk

Участник
Сообщения
930
Оценка реакций
142

Не по теме:
А не перебор ли это уже?
Ну есть же софт для спуска сборных тиражей, не проще из него PDF готовый брать? Я понимаю и полностью разделяю идею работы в АЕ через XML, но тут проблем больше вылазит, чем приобретений. Если, конечно, нет нормально работающей схемы под такие вещи, тогда я полностью поменяю свое мнение ;]=

 
Последнее редактирование:

romyk

Участник
Сообщения
930
Оценка реакций
142
А вообще, такой вопрос стоит запостить на их dashboard, интересно бы было услышать ответ.
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72
Дело в том, что мне это нужно для формированния специфического бланка на согласование.
На бланке дизайны(части одного дизайна). Снизу штамп с тех.инфой. В шапке логотип и пр. инфа.
Проблема с самими дизайнами
1. На бланке n-е кол-во макетов (лицо, оборот, схема лака, тиснения и тт.п.)
2. Макеты отличаются по размеру. Фронтальная этикетка отличается от оборотной и т.п.
3. Расположение макетов может быть: в строку, в столбец, Z-змейкой с указанием количества столбцов.

Наверное, если задаться целью, можно и стандартными средствами такое провернуть. Используя циклы и пр.
Например, если размещение дизайнов в строку.
1. Вычислит максимальную ширину и максимальную длину среди макетов.
2. Изменить trimbox всех дизайнов. Т.е. привести PDF файлы к одному размеру.
3. Используя S&R сделать спуск.
Не самый красивый вариант т.к. если у нас один макет размера 200х200 а второй 100х100. То у второго тримбокс увеличится до 200х200 и разместив их рядом будет большой пробел между макетами.

Самая жесть, если нужно змейкой сделать.

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

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72

Не по теме:
А не перебор ли это уже?
Ну есть же софт для спуска сборных тиражей, не проще из него PDF готовый брать? Я понимаю и полностью разделяю идею работы в АЕ через XML, но тут проблем больше вылазит, чем приобретений. Если, конечно, нет нормально работающей схемы под такие вещи, тогда я полностью поменяю свое мнение ;]=

А если у вас нейросеть на питоне делает спуск сборника формируя на выходе XML файл с данными (формат листа, положение дизайнов на листе). Ну не нравится вам ганг например )
Хотелось бы иметь возможность обработать XML, вставить смартметки и получить на выходе PDF файл для печати.
 

romyk

Участник
Сообщения
930
Оценка реакций
142
А если у вас нейросеть на питоне делает спуск сборника формируя на выходе XML файл с данными (формат листа, положение дизайнов на листе). Ну не нравится вам ганг например )
Хотелось бы иметь возможность обработать XML, вставить смартметки и получить на выходе PDF файл для печати.
Ну это уже высший уровень, я тут пас. Может, тогда стоит в сторону JDF смотреть?

Не по теме:
А серьезно, вы не против, если я ваш вопрос на эско задам?
 
Последнее редактирование:

ACTPOHOM

10 лет на форуме
Сообщения
2 801
Оценка реакций
1 094
А вообще, такой вопрос стоит запостить на их dashboard, интересно бы было услышать ответ.
туда постят сами эсковцы, частые вопросы и четкие ответы. это вики а не форум. Форум в другом месте, там надо иметь эско айДи
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72
Ну это уже высший уровень, я тут пас. Может, тогда стоит в сторону JDF смотреть?

Не по теме:
А серьезно, вы не против, если я ваш вопрос на эско задам?
Я не против если вы от своего имени зададите вопрос на эско
JDF - не проблема. Только есть ли в АЕ инструменты, по поступившему на входе JDF разместить на листе PDF файлы по координатам?
Я почему заостряю момент - размещение PDF на странице по координатами (x и Y)
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72
Есть два решения:
1. Идея такая: Циклами вставляем поочерёдно файлы. На каждой итерации меняем координаты изменяя поля. Т.е. если файл вставляется с привязкой к левому полю. Мы на след. итерации его меняем и опять вставляем файл и т.д.

2. Использовать Python и библиотеку PyPDF2
The PageObject Class — PyPDF2 1.26.0 documentation

Я склоняюсь ко второму варианту.
 

ACTPOHOM

10 лет на форуме
Сообщения
2 801
Оценка реакций
1 094
Можно клеить заготовки друг к другу смартметками. Привзяка к visble object. потом уменьшать до нужного размера и помещать куда требуется теми же метками
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
647
Оценка реакций
72
PyPDF2 - небольшая библиотека.
Документация

Пример кода на Python.
Достаточно оформить его в класс для удобства, и использовать.

Python:
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.pdf import PageObject

reader = PdfFileReader(open("in.pdf",'rb'))
#получим первую страницу
min_page = reader.getPage(0)
#Создадим пустую страницу 700*500
big_page = PageObject.createBlankPage(None, 700, 500)
# пример кода как получить высоту страницы min_page.mediaBox.getHeight()

#https://pythonhosted.org/PyPDF2/PageObject.html
#mergeScaledTranslatedPage(page2, scale, tx, ty, expand=False)
big_page.mergeScaledTranslatedPage(reader.getPage(0), 1, 0, 0)

writer = PdfFileWriter()
writer.addPage(big_page)

with open('out.pdf', 'wb') as f:
  writer.write(f)