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
- <GSG> - Getting Started
- <EXT> - Harlequin Extensions Manual
- <C&F> - Harlequin Core Capabilities & Features
- <API> - Harlequin RIP SDK (also included in the SDK)
- HqnNNN - Technical Notes
- Release Notes (Harlequin Core) for each version or revision of Harlequin Core
- Some stand-alone documents such as LDK Guide
These documents can be found under Harlequin Core Home.
Documentation provided in the doc folder of the SDK itself
<API>
hqnripsdk-html/index.html (also online at https://api.globalgraphics.com/harlequin/)- monitoruids.html and monitoruids.csv
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 versions
- See the Release Notes (Harlequin Core) for the release that you're working with
- Installation
- SDK components on disk
- Building the Harlequin Core test application,
clrip
- Running the
clrip
test application - Programming with Harlequin Core
- 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
- Communication from core to skin
- Tracking RIP processing
- <API> Monitoring RIP progress
- <API> The Event system
- <API> Timeline API
- Memory
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 sources
- White paper: The impact of PDF 2.0 on print production
- Submitting job files
- <API> Inputting data
- EPS Page Feature in SW\Page Features
- Core RIP configuration
- <API> Configuring the Harlequin RIP
- Sample configurations in SW\TestConfig directory
- Sample Page Features in SW\Page Features directory
- Samples 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 option
- monitoruids.csv in the doc directory of an installed SDK
- <API> Monitor Event Identifiers
- <EXT> The Harlequin Extended Error Handler
- Example 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
- PDF/X files
- Controlling optional content/layers
- 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
- PDF 2.0
- White paper: The impact of PDF 2.0 on print production
Outputting from Harlequin Core
- Overview
- <EXT> Continuous tone and color printers
- See Core RIP configuration above
- When using the clrip test application
- <API> clrip command-line arguments, especially
-o
and-s
- <API> clrip command-line arguments, especially
- Raster output code - "raster backends"
- Band delivery
- <API> Asynchronous raster output
- <API> Raster band ordering
- Passing metadata to the raster backend
- Raster backend memory management
- Raster backends and the Scalable RIP
- Raster backends and HVD
Specifying the output colorants
- Specify which colorants are used in the output
- <C&F> Specifying color output capabilities (
ColorantFamilies
) - <EXT> SeparationDetails
- Example configurations
- <C&F> Specifying color output capabilities (
- Extended gamut colorant sets (for example, CMYKOG)
- <EXT> XG Devices
- Example configurations CMYKOGVCompBand300dpi
- Generating RGB thumbnails and previews
- Example Page Features RGBPreview
- <EXT> HqnImpose2 Thumbnail suffix
- PhotoInk sets (for example, with light cyan)
- <EXT> Photoink devices
- <API>
photoinkdev.c
File Reference - Example configurations PhotoinkBand300dpi
- CMYK+White
- Example configurations CMYKCompWhite300dpi
- Automatically omit blank colorants
- 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 channels
- Example configurations RGBAComposite300dpi
Specifying the raster format
- Overview
- Specify pixel/band/frame/separation interleaving
- Specify bit depth for output from the RIP
- Selecting TIFF output compression
Halftones/screens
- Screening backgrounder for inkjet
- General
- <EXT> Halftone screens
- Screens for more than four colorants
- SW\Screens\sf.ps - example screens for six- and seven-color and PhotoInk printing using HDS
- Example halftones and configurations in the Advanced Inkjet Screens installer
- Integrating your own screening
- Hqn027 - Adding Spot Functions to the RIP
- <EXT> Adding extra dot shapes
- Hqn061 - Using Threshold Screens
- <API> Screening module interface
- <API> Screening module examples
- Example configurations in SW\TestConfig\HTM
- Advanced Inkjet Screens (separate packages from the Harlequin Core SDK)
- Hqn096 - Advanced Inkjet Screens
- Example configurations in AIS package
- AIS Tools - a separate package from the Harlequin Core SDK
- Multi-level screening (for example, for grayscale inkjet heads)
- Hqn094 - Mixing multi-bit screens
- Example configurations in AIS package: CMYKOGVMirrorMix300dpi, CMYKOGVPearlMix300dpi
- Object type screening
- Hybrid FM/AM screens
- <SDK> Harlequin Cross-Modulated screening (HXM)
- Hqn077 - HXM Screening Module
- HXM installers are separate packages from the Harlequin Core SDK
- Seamless screening
- <EXT> Seamless screening
- Non-monotonic screening
Color management
- Backgrounder
- White paper: Color management for digital label presses
- General
- Specifying how device color spaces in the job should be processed
- Specifying the output device color profile
- <EXT> Color management for modeling the output device
- Example Page Features: CMYKBasicColorManagement
- Chaining additional output color profiles for emulation, ink limiting, and so on
- <EXT> NextDevice named colorants
- Example Page Features: CMYKInkLimiting and CMYKEmulatingAndLimiting
- Color management for extended gamut colorant sets
- <EXT> XG Devices
- Example Page Features: CMYKOGVDirectColor and CMYKOGVviaCMYK
- Specifying 1D calibration tables
- Knockouts and overprinting
- Black preservation
- 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 examples
- Example configurations: CMYKCMMComposite300dpi
- Compliance with Ghent Working Group Output Suite
- Example Page Features: GWG5
Processing spot separations from the input
- Overview
- Youtube 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 colors
- Example 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 procset
- Example 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
- Font emulation
- Font substitution
- Reacting to missing fonts
Optimizing performance
- Threads
- Running multiple RIPs
- Variable Data as optimized PDF and PDF/VT
- White 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 VariData
- Example Page Features: HVD*
- Guide: Full Speed Ahead
- Hqn079 - Building PDF VT compliant systems using the Harlequin Core
- Hqn101 - 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
Miscellaneous features
- Tiled output (new in Harlequin Core 13.0r0)
- <EXT> Tiling in the Harlequin Core
- <API>
PageRelativeBBox
inRasterDescription
- In-RIP imposition and annotation
- Overlays on pages
- <EXT> Using HqnImpose2 for overlays without imposing any pages
- Sample jobs:
Samples/Labels.ps
andSamples/Tickets.ps
- OPI, DCS and PDF Reference XObjects
- <EXT> OPI and DCS
- Example Page Features: Image Replacement
- In-RIP barcode generation
- <EXT> Barcode operator
- <EXT> Drawing standard HqnImpose2 marks -
ControlBarcode
- <API> Barcode generation API
- Sample jobs:
Tickets.ps
Security and copy protection
- LDK security
- LE security
- Technical 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.
Additional screening-related example configurations
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 | Configures the RIP to process the Ghent Working Group's Output Suite 5 (and 4) correctly. |
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 | 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.