Guide to Harlequin Core Resources


Introduction

The Harlequin® Core has very rich and flexible controls for use in a wide variety of use cases. That richness, however, can make it difficult to find the right information to allow you to make it do what you need it to do. This document is intended to provide pointers to help you find the right resources.

The entries in this document point to a variety of resources of various kinds, including:

Formal documentation provided alongside the SDK

These documents can be found under Harlequin Core Home.

Documentation provided in the doc folder of the SDK itself

Example PostScript code and jobs, in the SDK

  • Configurations in SW/TestConfig

  • Page Features in SW/Page Features

  • Sample PDF and Postscript files in Samples

Public documents available from https://www.globalgraphics.com/resources

  • Product brochures and data sheets

  • White papers

Where to find resources

Each section below groups common areas of development into a general category. Neither the categories themselves, nor the order of items within each category, is intended to be significant, other than in making it easier to find a specific subject.

The bullets under each issue indicate where more detail on each subject can be found in the sources listed above.

Working with the SDK

  • Supported operating systems and compiler versionsSee the Release Notes (Harlequin Core) for the release that you're working with

  • Installation<GSG> Getting StartedInstallation and licensing an evaluation (Windows)Installation and licensing an evaluation (Linux)Installation and licensing an evaluation (macOS)

  • SDK components on disk<API> Harlequin RIP SDK structure

  • Building the Harlequin Core test application, clrip
    <API> Building the clrip application

  • Running the clrip test application
    <GSG> Using the Harlequin Core SDK test harness<API> The clrip application

  • Programming with Harlequin Core<API> Programming with the Harlequin SDK<API> Linking the Harlequin RIP SDK components

  • Designing your integration<C&F> Harlequin Core Capabilities & Features<API> Integrating the Harlequin RIP SDK<API> Starting the Harlequin RIP<API> Processing jobs<API> Stopping the Harlequin RIP and SDK<API> Inputting data to the Harlequin RIP<API> Configuring the Harlequin RIP<API> Outputting rasters<API> The minrip application

  • File system<EXT> Files, filters, and devices<API> The DEVICE interface<API> DEVICE implementations provided by the SDK

  • Communication from core to skin<API> Programming interfaces in the Harlequin RIP

  • Tracking RIP processing<API> Monitoring RIP progress<API> The Event system<API> Timeline API

  • Memory<API> Configuring memory allocation

Submitting jobs to the RIP

  • Supported file types<EXT> Input formats<API> Input job types<API> Files on the application command line<API> Hot folder input<API> Hot folder support in the SDK<API> Inputs API and input sourcesWhite paper: The impact of PDF 2.0 on print production

  • Submitting job files<API> Inputting dataEPS Page Feature in SW\Page Features

  • Core RIP configuration<API> Configuring the Harlequin RIPSample configurations in SW\TestConfig directorySample Page Features in SW\Page Features directorySamples are listed below in Example configurations and Example Page Features

  • Sizing and configuring image files such as TIFF and JPEG<EXT> The HqnImage procset

  • Debugging<GSG> Example output from the clrip -! 3 optionmonitoruids.csv in the doc directory of an installed SDK<API> Monitor Event Identifiers<EXT> The Harlequin Extended Error HandlerExample Page Features: Error Handler - Long<EXT> The HqnAssert procset<API> Raster backend debugging

Handling PDF files

  • Submitting PDF from a control file<EXT> Executing a PDF file

  • Encrypted PDF files<EXT> PDF support in Harlequin<EXT> OwnerPasswords / UserPasswords

  • PDF/X files<EXT> PDF versions and the PDF/X standards<EXT> EnforcePDFVersion PDF Param<EXT> Information about PDF/X files<EXT> PDF/X Color

  • Controlling optional content/layers<EXT> OptionalContentOptions PDF param

  • Only process some pages<EXT> PageRange PDF param<EXT> PageOrder PDF param

  • Submitting in chunks<EXT> PageRange PDF param<EXT> The pdfexecid operator

  • Analyzing PDF files<EXT> Inspecting PDF files<EXT> Information about PDF/X files

  • PDF 2.0White paper: The impact of PDF 2.0 on print production

Outputting from Harlequin Core

  • Overview<EXT> Continuous tone and color printersSee Core RIP configuration above

  • When using the clrip test application<API> clrip command-line arguments, especially -o and -s

  • Raster output code - "raster backends"<API> Outputting rasters<API> Important concepts for raster backends<API> Selecting raster backends<API> Raster backend API

  • Band delivery<API> Asynchronous raster output<API> Raster band ordering

  • Passing metadata to the raster backend<EXT> %pagebuffer% device parameters<EXT> Adding custom page device keys<API> Structured data parameters for raster handlers<API> Raster output backends in the clrip application

  • Raster backend memory management
    <API> Raster band allocation, framebuffers, and copying<API> Framebuffer support in the SDK

  • Raster backends and the Scalable RIP<API> Developing raster backends for use in the Scalable RIP<API> Enabling the Scalable RIP raster manager

  • Raster backends and HVD<API> eHVD enabling raster backends

Specifying the output colorants

  • Specify which colorants are used in the output<C&F> Specifying color output capabilities (ColorantFamilies)<EXT> SeparationDetailsExample configurations

  • Extended gamut colorant sets (for example, CMYKOG)<EXT> XG DevicesExample configurations CMYKOGVCompBand300dpi

  • Generating RGB thumbnails and previewsExample Page Features RGBPreview <EXT> HqnImpose2 Thumbnail suffix

  • PhotoInk sets (for example, with light cyan)<EXT> Photoink devices<API> photoinkdev.c File ReferenceExample configurations PhotoinkBand300dpi

  • CMYK+WhiteExample configurations CMYKCompWhite300dpi

  • Automatically omit blank colorants<EXT> Output only non-blank separations

  • Adding an object map channel<EXT> The object map<SDK> Specifying color output capabilities (ColorantFamilies ColorantType)Example configurations CMYKCompositeBand300dpiObjectTypeMap

  • Adding mask channels<EXT> Example: Generating CT, LW, and mask channelsExample configurations RGBAComposite300dpi

Specifying the raster format

  • Overview<GSG> Moving on with RIP configuration (Linux, macOS, and Windows)

  • Specify pixel/band/frame/separation interleaving<EXT> Composite and separation color formats<EXT> Color interleaving methods<EXT> InterleavingStyle in the page device<EXT> SeparationStyle in SeparationDetailsExample configurations

  • Specify bit depth for output from the RIP<EXT> ValuesPerComponent in the page deviceTechnical Note Hqn094: HalftoneType 1009Example configurations

  • Selecting TIFF output compression<C&F> Parameters for the LIBTIFF and FRAMETIFF raster backends

Halftones/screens

  • Screening backgrounder for inkjetWhite paper: How to mitigate artifacts in high-speed inkjet printing

  • General<EXT> Halftone screens

  • Screens for more than four colorantsSW\Screens\sf.ps - example screens for six- and seven-color and PhotoInk printing using HDSExample halftones and configurations in the Advanced Inkjet Screens installer

  • Integrating your own screeningHqn027 - Adding Spot Functions to the RIP<EXT> Adding extra dot shapesHqn061 - Using Threshold Screens<API> Screening module interface<API> Screening module examplesExample configurations in SW\TestConfig\HTM

  • Advanced Inkjet Screens (separate packages from the Harlequin Core SDK)Hqn096 - Advanced Inkjet ScreensExample configurations in AIS packageAIS Tools - a separate package from the Harlequin Core SDK

  • Multi-level screening (for example, for grayscale inkjet heads)Hqn094 - Mixing multi-bit screensExample configurations in AIS package: CMYKOGVMirrorMix300dpi, CMYKOGVPearlMix300dpi

  • Object type screening<EXT> GGS extension, HalftoneType 195

  • Hybrid FM/AM screens<SDK> Harlequin Cross-Modulated screening (HXM)Hqn077 - HXM Screening ModuleHXM installers are separate packages from the Harlequin Core SDK

  • Seamless screening<EXT> Seamless screening

  • Non-monotonic screening<EXT> GGS extension, HalftoneType 116

Color management

  • BackgrounderWhite paper: Color management for digital label presses

  • General<EXT> Color spaces and color management

  • Specifying how device color spaces in the job should be processed<EXT> Intercepting device spaces

  • Specifying the output device color profile<EXT> Color management for modeling the output deviceExample Page Features: CMYKBasicColorManagement

  • Chaining additional output color profiles for emulation, ink limiting, and so on<EXT> NextDevice named colorantsExample Page Features: CMYKInkLimiting and CMYKEmulatingAndLimiting

  • Color management for extended gamut colorant sets<EXT> XG DevicesExample Page Features: CMYKOGVDirectColor and CMYKOGVviaCMYK

  • Specifying 1D calibration tables<EXT> CalibrationHqn081 - Push Calibration<EXT> Auto-selection using calibration groups

  • Knockouts and overprinting<EXT> Knockouts and overprinting

  • Black preservation<EXT> Black preservation<EXT> The setinterceptcolorspace operator

  • Acting on output intents in PDF/X and PDF 2.0 files<EXT> PDF/X Color

  • Adding your own custom CMM<API> Color management module interface<API> Color management module examplesExample configurations: CMYKCMMComposite300dpi

  • Compliance with Ghent Working Group Output SuiteExample Page Features: GWG5

Processing spot separations from the input

  • OverviewYoutube video: Working with spot colors in Harlequin Core

  • Emulating a spot color using available colorants<EXT> Named color management

  • Omitting a spot color and ensuring no others are knocked out
    <EXT> Completely ignore one or more spot colorsExample Page Features: ExampleIgnoreSpots 

  • Acting on PDF Processing Steps (ISO 19593-1)<EXT> OptionalContentOptions parameters<EXT> HqnContour intercepts - see Mode = /ProcStep

  • Exporting vector graphics in a spot color to a vector representation (for example, for a cutter)<EXT> The HqnContour procsetExample Page Features: ExportContours

  • Aliasing input separation names to colorants with different names<C&F> SeparationDetails keys affecting colorant families - Names array in Colorants dictionary

  • Inverting a separation to an output colorant (for example, silver to white)<EXT> The HqnWhite procset

Font handling

  • Installing fonts<EXT> The HqnFontConverter procset

  • Font emulationWhite paper: Font emulationHqn065 - Using and modifying Font Emulation

  • Font substitution<EXT> Defaulting and substituting missing fonts

  • Reacting to missing fonts<EXT> The HqnMissingFonts procset

Optimizing performance

  • ThreadsWhite paper: Scalable performance with the Harlequin RIP<EXT> Multi-threading and Harlequin Parallel Pages (HPP)

  • Running multiple RIPs<API> The Harlequin Scalable RIP<API> Developing raster backends for use in the Scalable RIPKnowledge base: Tuning Harlequin performance in multi-RIP systems

  • Variable Data as optimized PDF and PDF/VTWhite paper: High-performance variable data printing using PDF<C&F> Optimizing variable data with Harlequin VariData<API> The event interface for HVD<API> eHVD enabling raster backends<API> SDK support for eHVD output<API> eHVD support library<EXT> Harlequin VariDataExample Page Features: HVD*Guide: Full Speed AheadHqn079 - Building PDF VT compliant systems using the Harlequin CoreHqn101 - Technical Note HVD Hint Tags (available on request)Sample jobs: Samples/GGS_100pp_1_3x3_Mixed.pdf and Samples/GGS_100pp_1_3x3_Mixed.pdf

  • Dynamic overlays for lightweight VDP<EXT> Using HqnImpose2 for overlays without imposing any pages<EXT> HqnImpose2 Data sources

Miscellaneous features

  • Tiled output (new in Harlequin Core 13.0r0)<EXT> Tiling in the Harlequin Core<API> PageRelativeBBox in RasterDescription

  • In-RIP imposition and annotation<EXT> Advanced Imposition using the HqnImpose2 procset<EXT> Simple imposition using the HqnLayout procset

  • Overlays on pages<EXT> Using HqnImpose2 for overlays without imposing any pagesSample jobs: Samples/Labels.ps and Samples/Tickets.ps

  • OPI, DCS and PDF Reference XObjects<EXT> OPI and DCSExample Page Features: Image Replacement

  • In-RIP barcode generation<EXT> Barcode operator<EXT> Drawing standard HqnImpose2 marks - ControlBarcode<API> Barcode generation APISample jobs: Tickets.ps

Security and copy protection

  • LDK security<GSG> Harlequin Core securityLDK GuideHqn089 - Securing multiple RIPs using Sentinel LDKHqn091 - LDK tools and command-line application

  • LE securityTechnical Note Hqn085: Harlequin Core security interface (available on request)

Requesting assistance

Samples supplied with the Harlequin Core SDK

The Harlequin Core SDK includes sample configurations, Page Features, and sample jobs to illustrate some of the more commonly used functionality in the RIP.

Configurations are selected with the -c option on the command line for the clrip test application; Page features are selected with the -F option. For information see Using the clrip application.

The example configurations and Page Features include comments explaining each configuration item and noting any prerequisites. They are intended as learning resources to enable you to develop your own configurations rather than to be used as-is in a production system.

Example configurations

Configuration files provide the foundation for the RIP configuration in preparation for processing a job. A number of PostScript configuration files, suitable for various common types of output, are supplied with the Harlequin Core SDK. These are easily modified using a simple text editor. The configuration files are within SW/TestConfig.

Many of the example configurations configure the RIP to deliver rasters at 300 dpi. That resolution was chosen because it's high enough to see all the page content clearly (at least most of the time), but low enough to render and display quickly while learning how to use the RIP. It's easy to produce output at other resolutions; take a copy of a supplied configuration and rename it, then edit the values for the X and Y resolutions on the HWResolution line.

Basic configurations

Monochrome72dpi

Generates a monochrome, halftoned raster at 72 dpi

CMYKComposite300dpi  

Generates a CMYK, contone raster at 300 dpi, with the colorants pixel-interleaved

CMYKCompositeFrame300dpi

Interleaves the data for each colorant as frames instead of per pixel

CMYKCompositeBand300dpi

Interleaves the data for each colorant as bands instead of per pixel

CMYKCompositeBand300dpi16bit

A variant on CMYKCompositeBand300dpi producing 16-bit contone raster instead of eight-bit

CMYKSeparations300dpi

Generates separated, CMYK, contone rasters at 300 dpi. Outputting to separations means that the raster for each colorant is delivered in a separate file.

CMYKSepsSpot72dpi

A variant on CMYKSeparations300dpi, adding a spot color called "PANTONE DS 225-4 C" (and also changing the resolution to 72 dpi)

CMYKHalftoned600dpi

Generates a CMYK, raster at 600 dpi, halftoned with a Euclidean screen, with the colorants frame-interleaved

CMYKHDSComposite300dpi

A variant on CMYKHalftoned600dpi, it overrides all screening in the job to use HDS fine (and also changing the resolution to 300 dpi)

CMYKCMMComposite300dpi

Applies simple color management demonstrating use of an alternate CMM

A ColorPro license is required.


CMYKCompositeBand300dpiObjectTypeMap

A variant on CMYKCompositeBand300dpi, adding an object type map as a pseudo-colorant alongside CMYK.

CMYKRle300dpi

Outputs the raster image as 10-bit contone in RLE rather than as a raw 8-bit raster.

CMYKWhiteCompBand300dpi 

Sets up composite output to CMYK plus White. This may also be used as a template for other spot inks on press.

CMYKOGVCompBand300dpi

A variant on CMYKCompositeBand300dpi, but outputting to an extended gamut colorant set (CMYKOGV). This configuration does not apply color management; it is designed for use with one of the CMYKOGV page features.

PhotoinkBand300dpi

Produces raster for a printer with light Cyan, Magenta, and Black, as well as the normal CMYK colorants

RGBComposite300dpi

Generates an RGB, contone raster at 300 dpi, with the colorants pixel-interleaved 

Color management examples for CMYK and RGB are provided as page features; see Example Page features (below).


RGBCompositeBand300dpi16bit

A variant on the RGBComposite300dpi test config to output 16-bit contone instead of 8-bit

RGBAComposite300dpi

Outputs to RGB with a hard mask in an alpha channel. The output may be useful for a user interface (for example, to assist in manually imposing pages or graphics). By conceptually rendering to CMYK and then transforming to RGB it ensures that CMYK overprints are processed in a way that matches a final print.

configurations provided in JSON

From Harlequin Core 13.1 onwards configurations may be provided in JSON as an alternative to PostScript. Sample JSON configurations mirroring all those listed above may be found in SW/TestConfig/JSON, under the same names but with the extension .json.

Schemas for validating Harlequin Core JSON configurations may be found in SW/TestConfig/JSON/schemas.

The HTM folder includes additional example configurations for use while evaluating and developing the modular screening API.

configurations for Advanced Inkjet Screens (AIS), including examples for multi-level screening, are provided in the AIS package rather than in the Harlequin Core SDK itself.

Example Page Features

These example Page Features can be used to add features on top of a configuration. In a production system, you might choose to add code similar to these Page Features into your configurations or stream it to the RIP with your jobs.

AntiAlias

Smooths contone raster output by applying anti-aliasing.

This Page Feature is compatible only with contone configurations.


CMYKBasicColorManagement

Configures simple input color intercepts and an output profile for the device. Use with any CMYK test config other than CMYKCMMComp300dpi.

CMYKEmulatingAndLimiting

Extends CMYKInkLimiting by adding a third transform for color emulation and illustrates how to control the merging of emulated spot colors.

CMYKInkLimiting

Extends CMYKBasicColorManagement by adding a second color transform for ink limiting.

CMYKOGVDirectColor

Simple color management configuration for an extended gamut colorant set, rendering directly into the full space. Use with the CMYKOGVCompBand300dpi test config.

CMYKOGVviaCMYK

Color management for an extended gamut colorant set, conceptually rendering first to CMYK and then transforming to CMYKOGV. Use with the CMYKOGVCompBand300dpi test config.

EPS

Configures the RIP to process EPS files as expected, ensuring that rendering is triggered, reading page size and offset from bounding box comments, and overriding behavior that prevents best handling of spot colors in EPS files from Adobe Illustrator.

Error Handler - Short
Error Handler - Long

Provide expanded (and significantly expanded) reports in response to RIPping errors. Most useful for PostScript jobs.

ExampleIgnoreSpots

Configures the processing of spot colors (usually technical spots such as die lines) so they're completely ignored when rendering a job.

ExportContours

Configures the processing of spot colors (usually technical spots such as die lines) so they're exported in vector format instead of rendered.

This Page Feature requires a license for Harlequin Contour Processor.


GWG5 

Deprecated (will be removed in a future release)

HVDDemo

Turns on Harlequin VariData in external mode, with a configuration that delivers one copy of every sub-page raster that it generates to demonstrate how pages are deconstructed.

This Page Feature requires a license for eHVD and is compatible only with contone configurations.


HVDNone

Turns on Harlequin VariData in external mode but discards all rasters generated. A useful mode for evaluating the speed of HVD. This Page Feature sets the output device to HVDNone which must not be overridden.

This Page Feature requires a license for eHVD and is compatible only with contone configurations.


HVDRaw

Turns on Harlequin VariData in external mode and saves all rasters generated to disk as raw raster files. This Page Feature sets the output device to HVDRaw which must not be overridden.

This Page Feature requires a license for eHVD and is compatible only with contone configurations.


HVDInternal

Turns on Harlequin VariData in internal mode with auto switching. This means that iHVD is applied to files that are tagged as PDF/VT or created by known VDP composition tools.

This Page Feature requires a license for iHVD.


Image Replacement

Turns on in-RIP OPI replacement and enables configuration of search paths for PDF Reference XObjects (for example, for PDF/VT-2). See comments in the Page Feature for details of which locations are searched for high resolution data.

List Spot Colors 

Lists all spot colors used in a job to the monitor and log file; mainly useful for debugging.

Print info on error
Print page on error 

Prints information when an error is encountered. Mainly useful for debugging PostScript jobs.

RGBPreview 

Color management that can be used with any supplied example RGB test config to conceptually render first to CMYK and then transform to RGB. This retains overprints correctly for thumbnail and preview generation.

Confidential (in the Examples sub-directory)

Adds a "Confidential" watermark across the page. This example uses basic RIP functionality.

Disable Trapping (in the Examples sub-directory)

Prevents a PostScript job from turning on in-RIP trapping.

Draft (in the Examples sub-directory) 

Adds a "DRAFT" watermark across the page. This example makes use of the framework provided by the HqnImpose2 procset.

Sample jobs

Sample jobs are supplied in the Harlequin Core SDK for use in introductory exercises in the Getting Started Guide and to demonstrate specific RIP functionality.

CambridgeGold.pdf

A folding carton sample, suitable for use with the CMYKSepsSpot72dpi example configuration.

GGS_100pp_1_3x3_Mixed.pdf and GGS_100pp_1_3x3_Uniform.pdf

Two variable data examples (based on direct-mail use cases); suitable for use with the HVD* example Page Features. The Uniform file works very well with HVD in both internal and external modes, while the Mixed mode performs better with external HVD.

IceCreamLabel.pdf

A label example, including a simple cut line; suitable for use with the ExampleIgnoreSpots and ExportContours example Page Features.

INSECURE-Mag-54.pdf

An example file representative of books, technical publications, and magazine use cases.

Labels.ps

An example control file for dynamic overlays. The variable data is derived from automated counters.

Tickets.ps

An example control file for dynamic overlays, reading the variable data from a CSV file.


All files in the Content directory are for use with the Labels and Tickets dynamic overlay samples.

The dynamic overlay samples require a license for Harlequin Barcode Generator.