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

  • Автор темы Автор темы Spirit412
  • Дата начала Дата начала

Spirit412

Топикстартер
15 лет на форуме
Сообщения
873
Реакции
129
Нужно используя 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.
Прошу помощи
 
Увы, но XML вверху это выходной документ, сопровождающий готовый спуск из GangRun
 
Т.е. АЕ может выдать XML готового спуска, но при наличии XML, разместить по нему PDF на листе не сможет?
 
ну типа это репорт, а не задание на верстку.можно закинуть им идею, может внедрят.
 
Хорошо бы они добавили такую возможность.

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

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

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

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

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

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

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

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

Не по теме:
А серьезно, вы не против, если я ваш вопрос на эско задам?
 
Последнее редактирование:
А вообще, такой вопрос стоит запостить на их dashboard, интересно бы было услышать ответ.
туда постят сами эсковцы, частые вопросы и четкие ответы. это вики а не форум. Форум в другом месте, там надо иметь эско айДи
 
Ну это уже высший уровень, я тут пас. Может, тогда стоит в сторону JDF смотреть?

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

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

Я склоняюсь ко второму варианту.
 
Можно клеить заготовки друг к другу смартметками. Привзяка к visble object. потом уменьшать до нужного размера и помещать куда требуется теми же метками
 
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)
 
Вот и мне теперь приходится биться с похожей задачей.:(
Размещение в столбец, файл один и тот же, только расстояния между единичками берутся из XML. Вроде все просто, а сообразить, как сделать, не могу :(*[[
 
Размещение в столбец, файл один и тот же, только расстояния между единичками берутся из XML. Вроде все просто, а сообразить, как сделать, не могу :(*[[
Тогда вам проще использовать S&R, где можно смартнеймами задавать значения расстояний между единичками. Если в XML данные уже все есть, то не составит труда считать их в смарт.
 
Вот и мне теперь приходится биться с похожей задачей.:(
Размещение в столбец, файл один и тот же, только расстояния между единичками берутся из XML. Вроде все просто, а сообразить, как сделать, не могу :(*[[
Это должен быть только AE? Другие решения не рассматриваются?
 
Это должен быть только AE? Другие решения не рассматриваются?
Эта ветка посвящена обсуждению вопросов АЕ.
У romyk уже используется АЕ. Судя по вопросу - в связке с какой-то ERP т.к. на входе готовый XML.
Вы же не думаете что из-за столь тривиального вопроса, человек (организация) будет менять АЕ на аналог? )))