PM Preflight:
usprawnienie przygotowania plików do produkcji
PM Preflight ściśle współpracuje z oprogramowaniem callas pdfToolbox server. Oprogramowanie obsługuje prawie wszystkie typy produkcji poligraficznych, a więc:
Sprawdzenie pod kątem druku obejmuje:
Opis logiczny PM Preflight:
- Folder wejściowy (w tym folderze aplikacja oczekuje na pliki JSON z definicją zadań: JobDefinition, których format opisano w kolejnych punktach)
- Folder udostępniony (w tym folderze aplikacja przechowuje pliki wynikowe, dostępne dla innych urządzeń w sieci)
- Nazwa udziału (nazwa pod jaką Folder udostępniony jest widoczny w sieci — parametr jest używany w plikach JSON JobResult, których format opisano w kolejnych punktach)
- Ścieżka do pliku z definicjami błędów (plik csv)
- Folder zapisu statusu aplikacji — do tego folderu aplikacja periodycznie zapisuje swój status (w formacie PreflighterStatus opisanym w dalszej części dokumentu).
- Nazwa preflightera — nazwa pliku tworzonego przez aplikację w katalogu zapisu status aplikacji (system zapisze plik pod nazwą json)
- Ścieżka do aplikacji pdfToolbox Server (ścieżka do CLI pdftoolbox servera) PmPreflight tworzy dwa rodzaje logów:
- Error log — błędy w wykonywaniu aplikacji (ewentualne problemy z dostępem do plików, ).
Plik ten znajduje się w katalogu „Folder udostępniony”/Logs/Y-M-D-error.log
- Preflight log — plik CSV zapisujący informacje o przetwarzanym pliku oraz czas jego
Plik ten znajduje się w katalogu „Folder udostępniony”/Logs/Y-M-D-preflight.log
-
- bleedBox (float) — spady w pracy w System sprawdza, czy praca zawiera odpowiednie spady, tzn, czy format wgranej pracy jest w formacie netto + spad z każdej strony. Domyślnie 3mm.
- cornerRadius (float) — promień zaokrąglenie (domyślnie 0 mm) na rogach (używane dla wizualizacji Trimboxa dla produktów z zaokrąglonymi rogami)
- foldList (List<List<float>>) — lista definicji linie bigowania dla każdej Jeżeli stron jest więcej niż obiektów foldList, kolejne linie będą używane do stron modulo. Wartości dodatnie oznaczają pionowe linie bigów, a ujemne poziome. Linie bigów nakładane są względem zadanych wymiarów pracy (z uwzględnieniem ewentualnego obrotu. Np. dla A4 do DL w Z (format zdefiniowany jako width:297, height: 210) mamy „foldList”: [[99, 198]] ponieważ na pierwszej i drugiej stronie linie bigów należy znaznaczyć 99mm i 198mm od lewej strony. W przypadku dla A4 do DL w C (format zdefiniowany jako width:297, height: 210) mamy „foldList”: [[97, 197], [100, 200]], ponieważ na drugiej stronie bigi są odbiciem lustrzanym tych na pierwszej (nie są symetryczne)
- height (float) — oczekiwana wysokość strony netto
- innerMargin (float) — wielkość wewnętrznego marginesu bezpieczeństwa w mm (domyślnie 3mm)
- numberOfPages (int) — ilość stron projektu, nadmiarowe strony zostaną usunięte
- jobId (int) — unikalny numer zadania (ustawiany przez aplikację korzystającą z PmPreflight, wykorzystywany do identyfikacji zadania)
- kfpxProfile — ścieżka do pliku .kfpx z definicją profilu pdfToolbox, który ma być zastosowany do
- pathResult (string) — miejsce gdzie PmPreflight ma umieścić plik wynikowy zawierający informacje o wykonanym zadaniu (w formacie JobResult). Pliki wynikowe mają następującą nazwę: jobId_token.json
- safeArea (float) — wielkość nadlewki strony w stosunku do trimboxa (domyślnie 3mm)
- token (string) — dodatkowy token zadania — przydatny jeżeli w obrębie jednego zadania (jobId) wykonywanych jest kilka procesów preflight
- userFileList (List<string>) — lista plików (pełne ścieżki) które mają być użyte do Preflight
- width (float) — oczekiwana szerokość strony netto w mm
- checkBleedbox (bool) — informuje czy program ma sprawdzać, czy w pracy są spady. Domyślnie false.
- applyBleedbox (bool) — informuje czy jeżeli spadów brakuje to system ma je automatycznie dołożyć (spady lustrzane). Ma sens tylko z checkBleedbox = true. Domyślnie false.
- innerMarginTop (float/null) — pozwala na przeładowanie innerMargin i zdefiniowanie innego marginesu bezpieczeństwa u góry. Domyślnie null
- innerMarginRight, innerMarginBottom, innerMarginLeft (float/null) — jak wyżej dla marginesu prawego, dolnego i lewego
- flipMargin (bool) — flaga informująca, czy marginesy mają się obracać jeżeli praca jest obrócona (np. format to 210×297, a klient wgrał 297×210). Domyślnie
- mirrorMarginOnEven (bool) — flaga informująca, czy margines ma być lustrzanie odbijany na parzystych stronach (np. dla katalogów szytych). Domyślnie false.
- sizeCheckThreshold (float) — system informuje, czy wgrana praca nie jest za wysoka/szeroka. Ta zmienna określa przy jakim przekroczeniu rozmiaru (w mm) to ostrzeżenia ma się pojawiać. Domyślnie
- prepareFlyer (bool) — flaga informująca czy system ma przygotować pliki do ulotki Wymaga licencji modułu 3D.
- creases (SheetCreases) — definicja bigów w ulotce Ma sens tylko jeżeli prepareFlyer = true. Wartość null tej zmiennej spowoduje wygenerowanie płaskiej ulotki. Domyślnie null. Strukturę SheetCreaes opisano pod listą zmiennych. Wymaga licencji modułu 3d.
- uvPagesCount (int) — ilość stron z lakierem UV, nadmiarowe strony zostaną usunięte.
- uvFilesList (List<string>) – lista plików (pełne ścieżki) które mają być użyte do Preflight lakieru UV
- foldMarksFile (string) — ścieżka do pliku z wykrojnikiem który ma zostać nałożony w pliku podglądu jako warstwa „Wykrojnik/Makieta”. Strony z pliku foldMarksFile nakładane są po kolei w pętli, w przypadku 10-cio stronicowej pracy i 4-ro stronicowego pliku foldMarksFile zostanie on nałożony 2 razy w całości oraz dodatkowo dwie pierwsze strony na stronach 9 i 10.
- foldMarksFileFlipped (string) — ścieżka do pliku z wykrojnikiem który należy zastosować jeżeli klient wgra pracę obróconą. Jeżeli ten parametr nie zostanie podany system samodzielnie obróci
- flippedClockwise (bool) — określa, czy jeżeli wgrany plik jest obrócony w stosunku do zadanego formatu o 90 stopni, to system ma zakładać, że obrócono go w kierunku wskazówek Domyślnie false — system zakłada, że obrócone pliki obrócono w kierunku przeciwnym do wskazówek zegara. Używane jedynie przy generowaniu plików do podglądu 3D. Wymaga licencji modułu 3d.
- prepareFlippingBookCover (bool) — określa czy system ma potraktować wgrywany plik jako okładkę katalogu klejonego, tzn. czy ma pociąć obrazki w sposób umożliwiający ich użycie w podglądzie Wymaga licencji modułu 3d.
- spineWidth (float) — ma sens tylko jeżeli prepareFlippingBookCover = Określa jak szeroki jest grzbiet we wgranym pliku (w mm). Np. plik jest okładką katalogu A4 z 5mm grzbietem, czyli jego format to 425mm x 297mm. Podając parametr spineWidth = 5, system na podglądzie zaznaczy grzbiet o szerokości 5mm, a ponadto przygotuje pliki jpg do podglądu 3d poprzez odcięcie grzbietu (z obu stron). Wymaga licencji modułu 3d.
- glueOnShortEdge (bool) — flaga informująca, czy produkt jest klejony po krótkim boku (powoduje dodanie na proofie znacznika miejsca klejenia). Domyślnie Ma również wpływ na generowanie obrazków do podglądu 3d.
- glueOnLongEdge (bool) — flaga informująca, czy produkt jest klejony po długim boku (powoduje dodanie na proofie znacznika miejsca klejenia). Domyślnie Ma również wpływ na generowanie obrazków do podglądu 3d.
- overlapWidth (float/null) — zmienna informująca o długości nadlewki w stosunku do oczekiwanego formatu netto. Ma sens wyłącznie z glueOnShortEdge lub glueOnLongEdge. W przypadku produktów typu notesy klejone (np. A4) do formatu netto okładki dodawana jest nadlewka którą skleja się Część tej nadlewki stanowi grzbiet a część zachodzi na tył notesu. Ten parametr jest potrzebny (wraz z spineWidth oraz glueOnShortEdge lub glueOnLongEdge) do przygotowania odpowiedniego podglądu 3d katalogu. Oczywiście w przypadku notesu A4 z nadlewką 30mm, klejonego po krótkim boku, praca powinna mieć wymiary: 210mm x 227mm. System nie dokłada nadlewki, a jedynie w odpowiednim miejscu ją odcina do podglądu i w odpowiednim miejscu rysuje grzbiet. Domyślnie null. Wymaga licencji modułu 3d.
- prepareFlippingBookContent (bool) — informuje system czy ma przygotować obrazy jpg do podglądu katalogu (strony środkowe). Domyślnie false. Wymaga licencji modułu 3d.
- flippingBookMergeOnLongEdge (bool) — flaga informująca, czy strony katalogu są łączone po krótkim czy po długim boku. Ma sens wyłącznie w przypadku użycia prepareFlippingBookContent lub prepareFlippingBookCover. Domyślnie true. Wymaga licencji modułu 3d.
- fixedAutoPages (FixedAutoPages) — struktura określająca pliki które należy automatycznie dograć do pracy. Np. jeżeli chcemy aby do pracy jednostronnej na drugiej stronie dodać automatycznie jakieś informacje/reklamę to możemy użyć tego parametru. Domyślnie null. Strukturę FixedAutoPages opisano pod listą zmiennych.
- productionTrimBox (float/null) — wielkość trimboxa pliku produkcyjnego w stosunku do pracy (w mm). Jeżeli chcemy, aby trimbox pliku produkcyjnego był większy o np. 3mm od trimboxa projektu (np. dla wykrajarki), należy użyć tego Plik podglądu pozostanie bez zmian.
- thumbMaxWidth, thumbMaxHeight (uint) — maksymalna szerokość/wysokość miniatur Jeżeli zdefiniujemy, np. 800×800 a praca będzie pozioma, to plik podglądu zostanie dopasowany do szerokości, jeżeli praca będzie pionowa, to plik podglądu zostanie dopasowany do maksymalnej wysokości (z zachowaniem proporcji)
- productionOverlayFile (string/null) — plik PDF który zostanie nałożony na plik produkcyjny przed procesem preflightu. Może zostać wykorzystany np. do nałożenia białych prostokątów w miejsca klejenia, aby mieć pewność, że nie będzie w tym miejscu farby. Plik nakładany jest w trybie pętli (jeżeli plik wejściowy ma 4 strony, a plik overlay ma 2, to plik zostanie nałożony 2 razy, 1:1, 2:2, 3:1, 4:2)
- productionOverlayFileFlipped (string/null) — działa tak samo jak productionOverlayFile, ale jest używany w sytuacji gdy wgrany plik jest obrócony o 90 stopni w stosunku do zadanego formatu.
- applyMockupOnProduction (bool) — nakłada mockup (foldMarksFile, foldMarksFileFlipped) na plik produkcyjny jako osobną warstwę (o nazwie „Mockup”) domyślnie ukrytą z flagą “Drukuj jeżeli widoczna”. Operacja wykonywana jest po Jeżeli praca jest obrócona o 90 stopni w stosunku do zadanego formaty to używany jest plik foldMarksFileFlipped, w przeciwnym wypadku plik foldMarksFile. Jeżeli odpowiedniego pliku nie ma, proces jest pomijany.
- productionOverlyAfterPreflight (bool) — domyślnie Ustawienie wartości na true powoduje nałożenie pliku productionOverlay po preflight.
W zmiennych typu float używamy „.” (kropki) jako znaku dziesiętnego. Opis struktury SheetCreases (pola):
- vertical (List<floa>) — lista bigów pionowych (w stosunku do format pracy) w Liczy dodatnie oznaczają big „z przodu”, ujemne big „od tyłu”.
- horizontal (List<floa>) — lista bigów poziomych. Mechanizm jak w przypadku pionowych
- firstFront (bool) — flaga informująca, czy pierwsza strona pracy ma być z Np. w przypadku ulotki A4 do DL w C pierwsza strona pracy to część zewnętrzna i na podglądzie 3d powinna być z tyłu. Domyślnie false.
- foldingOrder (List<string>) — sekwencja zawierająca słowa „left” lub „right” informująca o kolejności składania
Przykład (dla ulotki A4 do DL w C, format 297×210):
“creases”: { “fistFront”: false,
“foldingOrder”: [“left”,”right”], “horizontal”: [],
“vertical”: [-97,-197]
}
Opis struktury FixedAutoPages (pola):
- file (string) — ścieżka do pliku, który ma zostać dołożony
- fileFlipped (string) — ścieżka do pliku, który ma zostać dołożony, jeżeli klient wgra pracę odwróconą w stosunku do zadanego formatu
- insertAfter (int) — po której stronie mają zostać dołożone strony z tego 0 (zero) oznacza, że strony mają być dodane na początku
- numberOfCopies (int) — ilość kopii stron z pliku jaka ma zostać dołożona
- jobId (string) — jak w przypadku jobDefinition
- token (string) — jak w przypadku jobDefinition
- pathImage1 (string) — ścieżka do pierwszego obrazka
- pathImage2 (string) — ścieżka do drugiego obrazka
- pathImage1Uv (string, opcjonalne) — ścieżka do pierwszego obrazka z lakierem UV
- pathImage2Uv (string, opcjonalne) — ścieżka do drugiego obrazka z lakierem UV
- image1widthMm (float) — szerokość rzeczywistej pracy, którą obrazek przedstawia w mm z image1heighMm (float) — wysokość rzeczywistej pracy, którą obrazek przedstawia w mm z image2widthMm (float) — szerokość rzeczywistej pracy, którą obrazek przedstawia w mm z image2heighMm (float) — wysokość rzeczywistej pracy, którą obrazek przedstawia w mm
- image1widthPx (int) — szerokość pierwszego obrazka (w pikselach). Jeżeli nie zostanie podana system wyliczy parametr samodzielnie
- image1heightPx (int) — wysokość pierwszego obrazka (w pikselach). Jeżeli nie zostanie podana system wyliczy parametr samodzielnie
- image2widthPx (int) — szerokość drugiego obrazka (w pikselach). Jeżeli nie zostanie podana system wyliczy parametr samodzielnie
- image2heightPx (int) — wysokość drugiego obrazka (w pikselach). Jeżeli nie zostanie podana system wyliczy parametr samodzielnie
- wegGlMode (bool) — tworzy obrazki wymagane dla podglądu Wymaga licencji modułu 3d.
- overlapMm — ilość mm jaką obrazek 2 ma zachodzić na obrazek 1 (w mm).
- joinOn (string) — może przyjąć wartość top, left, bottom lub Aplikacja dołączy obraz 2 do joinOn strony obrazu 1 (domyślnie top), z zakładką overlapMm.
- pathResult (string) — jak w przypadku jobDefinition
- imagesWithoutMarkers (string) — lista (pełne ścieżki) miniatur bez markerów
- imagesWithMarkers (string) — lista (pełne ścieżki) miniatur z markerami
- pdfWithoutMarkers (string) — ścieżka do pliku wynikowego PDF (bez markerów)
- pdfWithMarkers (string) — ścieżka do pliku wynikowego PDF (z markerami)
- pdfUV (string) — ścieżka do pliku wynikowego PDF (z lakierem UV)
- jobId (int) — numer zadania podany na wejście Preflight
- token (string) — token podany na wejście Preflight
- width (float) — szerokość stron z uwzględnieniem ewentualnego obrócenia pracy z height (float) — wysokość stron z uwzględnieniem ewentualnego obrócenia pracy z numberOfPages (int) — ilość stron
- logsList<string> — lista informacji o błędach /ostrzeżeniach/ zastosowanych fixupach
- sourceFiles (List<string>) — lista plików użytych do wykonania preflight
- flyer (WebGlFlyer) — definicja ulotki 3d używana przez skrypt javascript wyświetlający ulotkę
- flyerBoced (WebGlFlyer) — definicja ulotki 3d używana przez skrypt javascript wyświetlający ulotkę 3d w wersji z nałożonymi liniami
- flippingBookPages (List<string>) — lista plików jpg do wyświetlenia w podglądzie 3d katalogu jako strony środka
- flippingBookCover (List<string>) — lista plików jpg do wyświetlenia w podglądzie 3d katalogu jako strony okładki
- flippingBookFlipVertical (bool) — informacja czy podgląd katalogu należy obrócić o 90 stopni (np. w przypadku pionowego katalogu szytego po krótkiej krawędzi)
Pliki JobDefinition oraz JobResult używają formatu JSON
- mergedImage (string) — ścieżka do połączonego pliku
- mergedImageUv (string) — ścieżka do połączonego pliku UV
- token, jobId (string, string) — przepisane z jobDefinition
- widthMm, heightMm (decimal, decimal) — wymiary pracy po połączeniu, przeliczone na mm
- widthPx, heightPx (int, int) — wymiary połączonego pliku w px
- webGlWidthPx, webGlHeightPx (int, int) — wymiary tekstury dla webGl
- success (bool) — informuje, czy połączenie się powiodło
- logs (list<string>) — lista ewentualnych błędów przy tworzeniu połączonego obrazka
W pliku JobResult w polu logs znajduje się lista ostrzeżeń / błędów / fixupów, które możemy podzielić na dwie grupy:
Będące wynikiem zastosowania profilu na .kfpx na pliku (wszystkie informacje, które może zwrócić Callas pdfToolbox, zawarte w definicji profilu)
Wykryte przez aplikację przed lub po wykonaniu preflight:
- blankPage — informuje, że projekt zawiera puste strony
- fileFliped — informuje, że projekt wejściowy jest obrócony w stosunku do zadanych parame- trów (np. wgrano 297×210 zamiast 210×297)
- pageFlipped — informuje, że strony projektu są odwrócone w stosunku do siebie
- fileTooWide — informuje, że plik wejściowy jest zbyt szeroki, tzn większy niż netto + bleedbox
- fileTooNarrow — informuje, że plik wejściowy jest zbyt wąski, tzn jest mniejszy niż format netto
- fileTooHight — informuje, że plik wejściowy jest zbyt wysoki, tzn większy niż netto + bleedbox
- fileTooLow – informuje, że plik wejściowy jest zbyt niski, tzn jest mniejszy niż format netto
- preflightFailed — informuje, że proces preflight nie udał się.
- mirrorBleedAdded — informuje, że proces preflight dodał spady
- mirrorBleedNeeded — informuje, że proces system wykrył brak spadów
- tooFewPages — informuje, że podana ilość stron jest mniejsza od wymaganej
- tooManyPages — informuje, że w pracy jest więcej stron niż jest to wymagane
- tooManyUvPages — informuje, że pliku lakieru UV jest więcej stron niż jest to wymagane
- multiStripImagesNotSupported — informuje, że na wejście podano plik tiff z wieloma strona- mi, a takowych system nie obsługuje.
- fileTypeNotSupported— informuje, że na wejście podano plik w nieobsługiwanym formacie
- fileCorrupted— informuje, że na wejście podano uszkodzony plik
Dla każdego logu możemy zdefiniować (w pliku .csv podanym jako parametr wejściowy programu) na- stępujące informacje:
- Severity — rodzaj błędu (np. info, warning, error, fatal), które mogą zostać później użyte przez oprogramowanie czytające Sam fakt pojawienia się w jobResult loga (np. fileToNarrow) nie oznacza, że preflight się nie udał. Jest to tylko informacja, która może zostać użyta przez zewnętrzne oprogramowanie w dowolny sposób.
- Message — informacja tekstowa o błędzie — dowolny ciąg znaków, który może później zostać użyty przez oprogramowanie interpretujące pliki JobResult.
- InfoUrl — adres URL prowadzący do strony www zawierającej informacje o ostrzeżeniu / błędzie.
Wszystkie parametry są opcjonalne. Nie podanie pliku .csv z informacjami jako parametru do aplikacji spowoduje, że plik JobResult będzie zawierał jedynie kody ostrzeżeń / błędów / fixupów.
Program oprócz plików jobResult zwraca również pliki jobStatus (do tego samego katalogu do którego na końcu umieszczany jest jobResult). Pliki mają tak samo skonstruowaną nazwę jak pliki jobResult, z tą różnicą, że rozszerzenie to .status.json, a nie .json. Plik jobStatus zawiera następującą strukturę danych:
- statusCode (string) — kod statusu
- info (string) — opis tekstowy statusu
- progres (int) — postęp w procentach


