Формат JDF. Автоматизация процессов в полиграфическом производстве

в 19:08, , рубрики: jdf, web2print, Промышленное программирование, метки: ,

Предыстория

Много лет компании-разработчики специализированного для типографий ПО создавали программные комплексы один мощнее другого и все предлагали автоматизировать процессы с помощью специальных форматов файлов, софта и оборудования. Но загвоздка была в том, что купив печатную машину с поддержкой формата передачи данных от условной компании X, типография была вынуждена покупать у этой же компании X и другое оборудование и программное обеспечение всю свою жизнь.

По этой причине ситуация на рынке сложилась такая, что большинство созданных систем автоматизации не пользовались спросом у типографий.

И тут появляется .jdf и CIP4

И вот в 1999 на помощь печатной индустрии пришёл консорциум CIP4, чьё название расшифровывается как “Cooperation for the Integration of PrePress, Press, PostPress and Process”.

Это сообщество разработало новый формат передачи данных о заказе, основываясь на уже существовавшем тогда формате CIP3 (cip3 — файлы настроек офсетной печатной машины).
Разработанный ими формат JDF представляет собой xml структуру, содержащую внутри себя специализированные теги, содержание и атрибуты которых, описывает все (ну или по крайней мере большинство) данных о заказе. Начиная от внутреннего идентификатора (id заказа) до того, какой толщины запечатываемый материал и сколько скрепок какой модификации должно быть на изделии.

Вырезка из .jdf файла

<?xml version="1.0" encoding="utf-8"?>
<JDF xmlns="http://www.CIP4.org/JDFSchema_1_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="TI_099fa" JobPartID="MISPRE_040051_PlateMaking" Type="Product" xsi:type="Product" Status="Ready" JobID="106061_1_1" Version="1.2" MaxVersion="1.2" ICSVersions="Base_L1-1.0 MIS_L1-1.0 MISPRE_L1-1.0" DescriptiveName="MISPRE PlateMaking v13" Template="false">
…
</JDF>
</xml>

Важно для понимания то, что jdf файл несёт в себе информацию о заказе не только для пользователей, но и передаёт настройки непосредственно типографским программным комплексам и производственному оборудованию.

Что стало возможным с внедрением jdf

С момента выхода формата jdf всё более или менее автоматизированное оборудование для типографий стало поддерживать этот общепринятый формат, не говоря уже о программном обеспечении. Создать jdf файл можно как в workflow любого производителя, так и в самописной системе (подробнее об этом в конце статьи).

PrePress. Допечатная подготовка

После того как заказ и его jdf файл создан, он передаётся в отдел допечатной подготовки типографии, где программы спуска полос (раскладывания страниц изделия на печатный лист) предлагают возможность импортировать jdf, взяв все необходимые для себя данные и в 2 клика отправить его на следующий этап.

После отдела допечатной подготовки файл, содержащий ссылки на pdf макеты спусков, готовых к печати попадает на RIP (растровый процессор), который в свою очередь берёт из файла настройки растрирования, заданные при создании jdf и создает растрированные и сепарированные файлы tiff-b, содержание которых проявляется на печатных пластинах на участке CtP (системы Computer to Plate)

Press. Печать

Когда выведенные пластины доставляют на печатную машину, в управляющей ей компьютер уже загружен jdf, который выставляет настройки печати в зависимости от макета.

PostPress. Послепечатная обработка

Тираж отпечатан форматами печатной машины. После просушки листов наступает время резки на готовые форматы и других отделочных операций. Часть оборудования послепечатной обработки (например гильотинные резательные машины) так же умеют воспринимать параметры заказа и настраивать свои параметры под заложенные в заказе значения.

Process

Немаловажная часть информации внутри jdf — это информация о статусах производственных операций и заказа в целом. То есть один файл заменяет виртуальный (либо напечатанный на бумажке) бланк (паспорт) заказа и несёт в себе информацию не только о параметрах изделия, но и отражает информацию о текущем состоянии заказа.

Немного о создании jdf файлов

О том какие данные могут быть отображены в файле jdf рассказывает спецификация формата. На 1268 страницах детально расписаны все возможные тэги, атрибуты и их предназначение.

Также есть замечательный человек Tom Cabanski и его старинный блог. Информации там немного и часть ссылок уже не рабочие, но есть возможность скачать его библиотеку Fluen JDF и упростить с её помощью создание и редактирование jdf файлов многократно.

Генерацию jdf файла при помощи этой библиотеки можно свести к тому, что использовать шаблонный файл, содержащий максимальный набор данных и при помощи методов Fluent JDF редактировать части файла, настраивая его содержание под свои нужды.

Пример кода на C#

public static Ticket JDFGenerate(ProductPart task)
        {
            InitializeFluentJdf();
            Infrastructure.Core.Configuration.Settings.UseCastleWindsor().LogWithNLog().Configure();
            FluentJdfLibrary.Settings.ResetToDefaults();
            string finishFormat = task.Format.Replace("*", " ");
          …….
          /*Заказчик*/
            ticket.SelectJDFDescendant(Element.CustomerInfo)
            .SetAttributeValue("CustomerName", task.CustomerName);
            ticket.SelectJDFDescendant(Element.CustomerInfo)
                 .AddInput(Element.Contact);
            ticket.SelectJDFDescendant(Element.Contact)
                .AddInput(Element.Company);
            ticket.SelectJDFDescendant(Element.Contact)
                .SetAttributeValue("OrganizationName", task.CustomerName);
            /*Формат изделия*/
            string dimentionsStrip = task.Format.Replace("*", " ");
            string finalFormat = ConvertDimentions(dimentionsStrip);
            ticket.SelectJDFDescendant(Element.StripCellParams)
                .SetAttributeValue("TrimSize", finalFormat);
…..
                ticket.SelectJDFDescendant(Element.Device)
                .SetAttributeValue("DeviceID", jdfMachine);
            /*Бумага*/
            ticket.SelectJDFDescendant(Element.Media)
                .SetAttributeValue("Brand", task.Material.MaterialName);
            ticket.SelectJDFDescendant(Element.Media)
                .SetAttributeValue("Weight", task.Material.MaterialWeight);
            ticket.SelectJDFDescendant(Element.Media)
                .SetAttributeValue("Thickness", task.Material.MaterialThickness);

Но увы

Этот формат, который вывел автоматизацию в полиграфическом производстве на новый уровень, на территории РФ используется очень эпизодично. Даже если типография внедряет jdf в свой рабочий процесс, то, скорее всего, делает это только на одном из всех этапов (как правило, это передача настроек печати из отдела допечатной подготовки на печатную машину).

Связано это, вероятно, с необходимостью больших инвестиций в оборудование и ПО и практически полным отсутствием отечественных разработок в этом направлении. Но всё же хочется верить, что у jdf есть будущее в нашей стране.

Автор: TheArtem13

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js