Beyond classic preflighting: Context aware object detection (Sifter)
Classic preflighting focuses on properties of objects as they happen to exist on a given page. Sometimes, simple geometric constraints – e.g. whether an object is located inside the TrimBox or BleedBox – are also taken into account. Using classic preflighting many potential problems can be detected before they begin to cause delays or even actual damage in production in the form of additional waste or lost revenue.
Especially in a world of more and more digital printing, ever tighter deadlines, increased levels of automation, more demanding print buyers and fast growing challenges in more and more complex production setups, additional preflighting (and processing) needs arise.
One of the weaknesses of classic preflighting is the sometimes significant number of false positives: flagging something that could be a problem but actually is not a problem in the given constellation of content on a page. For example, it can be essential to ensure that small black text is set to overprint, to compensate for registration issues on the printing press. Nonetheless – such a need to overprint small black text is only a relevant requirement if there is any contet below the small black text.
In other cases it is not sufficient to limit a requirement to objects inside the TrimBox or BleedBox – in packaging and label printing the final printed objects are typically not rectangular anymore, rather, they can have any shape (also including holes in such shapes). Here, it is critical to limit certain checks to objects inside the cut line, or to ensure that text mandated by food related or other regulations is not too close to the cut line as it could be cut off if the cutting process happens to be slightly off.
The examples below are meant to give some ideas how Context aware object detection could be put to use. In some cases, specialized properties make it very easy to set up a check accordingly. In other, more demanding cases, it may be necessary to make use of the general purpose "Context aware object detection (Sifter)" property, with full control over each and every aspect of the property, but also more difficult to set up.
An aspect not be missed is the fact that checks making use of Context aware object detection can be used as filters in a number of fixups.
Small black text will often be set to overprint to accommodate effects of slight mis-registration in the printing process: if such small text where to knock out content behind it, small but very noticeable white lines might show up around the text.
Many preflight configurations will flag small text that is not set to overprint. In many cases though such text does not have any content underneath it – it then simply does not matter whether that small text is set to overprint or to knockout.
By using Context aware object detection it is possible to only flag small text not set to overprint in those cases where it does have visible content underneath it.
Cutlines on a PDF page are usually constructed in the form of a simple line using a spot color with a certain name (e.g. "Cutline"). Cutting devices can extract such cutlines from a PDF file and use them for carrying out the cutting task.
In order to avoid a mismatch between what looks like the cutline when looking at a PDF page and the actual cutline, it is essential that no part of the cutline is covered by other objects.
A Context aware object detection based check can be used to look for objects that intersect with a line object using a spot color "Cutline", and are on top of that line object (if they are below, the intersection does not have any negative impact on the cutline).
Graphics objects on a page can be invisible for a number of reasons:
- they are outside the page area
- they are clipped by means of a clipping path
- they are covered by some other opaque object
- or any combination of the above, possibly affecting different parts of a graphics object (i.e. a graphics object can be come effectively invisible because different parts of it are subject to one of the above listed effects)
In some cases it can be especially interesting to check for objects that are covered by other objects, as someone may have inadvertently moved them to the background.
Using Context aware object detection it is possible to
- check for grapbics objects that are invisible because they are covered by other opaque objects
- after carrying out the check, use the "Snap" feature to revew each of these invisible graphics objects
- for diagnostic purposes: remove all visible objects such that the invisible objects (covered by other opaque objects) become visible
In workflows that wish to repurpose PDFs by keeping the graphical content but replacing text content with updated or translated versions, it is essential that removing existing or inserting modified text does not have a negative impact on the appearance of the graphical content.
An important aspect in this regard is to make sure all text objects are on top of all other objects. Context aware object detection can be used to ascertain that no visible objects are on top of any text objects.
Where repurposing workflows only exchange black text – so they only have to remake the black printing form – it is of course possible to limit checking to black text.
In cases where text is not already in front of all other content on a page, the following option may be useful.
Determine whether an object can be brought to the front without impacting the visual appearance of the page
There are two methods to determine whether bringing text objects to the front has any downside effect:
- use Context aware object detection to find all text objects that have visible content above them
- execute a profile containing the "Bring to front" fixup for text objects, and also the "Result file different from original (visual comparison)" check; whenever bringing text to the front causes a change in the visual appearance of a page, a warning will be issued
As described above, objects can be invisible for several reasons (and even combinations of reasons). A Context aware object detection based check can be used in the "Remove objects" fixup to remove invisible objects.
Cutlines in many cases are non-rectangular, making it difficult to use classic preflighting to find objects that are a bit too close to the cutline. As a cutline can be identified by the spot color name it is using, or by the fact that it is on a certain layer (for example, according to the Processing Steps specification as defined in ISO 19593-1), it possible to detect its presence on a PDF page.
Using Context aware object detection it is possible to check for all visible objects on a page whether they are closer to the cutline than allowed by a user configurable threshold value (e.g. 3mm or 10pt). This can be done with different threshold values from the inside and from the outside of a cutline's area.
During creation and review of print files for label printing, extensive amounts of content can be present that will not ultimately be printed. It will usually exist outside the bleed area of the label, where the bleed area is the area defined by the cutline for the label plus an addditional 3mm around the area defined by the cutline.
Being able to completely remove graphics objects outside the bleed area of a label can help clean up the production file. Where certain content – such as instructions or a company logo – is to be kept regardless, a Context aware object detection check can be set up accordingly. Using the check as a filter in the "Remove objects" fixup will carry out the respective removal of extraneous objects.
The "Processing Steps" specification is an ISO standard that mandates that graphics objects not actually intended for printing in the production printing process are put on certain layers, where such layers have certain metadata information, and also adhere to certain rules. Typical examples of 'non-print' objects are cutlines, folding lines, indication of punch or drilling holes, glue areas, indication of dimensions, instructional text, and so forth.
The main goal of the The "Processing Steps" specification is to reduce production errors and facilitate exchange and use of non-print objects, for example for automated cutting processes.
Numerous provisions in the "Processing Steps" specification take relationships between graphics objects into account. For example, in a PDF file conforming to the "Processing Steps" specification, it is prohibited to have any graphics object above a cutline intersect with that cutline.
Based on Context aware object detection, a full conformance check against the "Processing Steps" specification can be carrried out using pdfToolbox.
Linking classic preflighting to the context in which graphics objects exist on a page adds a new and essential dimension to preflighting. Context does exist in a number of ways:
- stacking order: whether a graphics objects is drawn before or after other graphics objects; a graphics object can only be obstructed or covered up by other graphics objects if those are painted after the graphics object at hand
- intersection: whether a graphics object shares a certain area of the page with other graphics objects, or an arbitrary area on the page, where such an area could defined by means of a cutline, the extent of a white background necessary for printing on transparent foils or a "glue" area to be kept free of printing ink
- insideness: whether a graphics object is inside or outside other graphics objects, or an arbitrarily shaped area on the page
- proximity: how close a graphics object is to other graphics objects or the border of an arbitrarily shaped area on the page
- clipping: whether a graphics object is partially or fully clipped
- obliteration: whether a grapics object is partially or fully covered by other opaque graphics objects
Depending on the type of content to be preflighted, different aspects of context can play a role, in varying combinations. In addition, detecting graphics objects based on their context can also be a powerful filtering mechanism: whether this is about removing clipped or obliterated content, limiting modification of small black text to occurrences where it actually exists on top of other graphics objects, or only applying color conversion to graphics objects inside cut lines, and so forth.
Sifter – a shorthand for referring to the Context aware object detection technology – has been developed by callas software in an extensive research and development process. Already in 2014 a research project was carried out in cooperation with the Beuth University of Applied Sciences in Berlin. Among other activities, the Master Thesis "Context Aware Preflighting in Packaging Printing" by Nils Niggemann contributed important insights to the then status quo of advanced preflighting needs in the packaging industry in Europe and North America.
While experienced partitioners participating in Niggemann's research struggled to think outside of the box and rather preferred to stick to the tools they had, and despite the glaring limitations of those tools, it became apparent, that especially in packaging and label printing, and more so as this industry is moving towards much faster paced digital printing processes, flexible and fine grained context aware preflighting would soon become a critical requirement.
A major concern in early implementation stages was performance: complex packaging designs – and more so imposed sheets of such designs – can easily contain tens or even hundreds of thousands of individual grapics objects. Still, the execution of a complex context aware check on a typical page should typically take seconds, not minutes.
From continued research and implementation cycles, callas software's Sifter technology emerged as the engine, that provides extensive context aware checking capabilities at the speed mandated by today's workflows. Sifter is an integral part of callas pdfToolbox starting with version 10, and is equally available in the desktop, server, command line and SDK variants of callas pdfToolbox on the Apple MacOS, Microsoft Windows and Linux operating systems.