Hqn100 - Guide to Harlequin Core Resources 13.0r1
Created Date: 27 Apr, 2022 16:04
Last Modifed Date: 14 May, 2022 01:48
Introduction
The Harlequin® Host Renderer 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
- <EXT> - Harlequin Extensions Manual
- <API> - Harlequin API Reference Manual
- <SDK> - Harlequin Core SDK Developer's Guide
- <GSG> - Getting Started
- HqnNNN - Technical Notes
- Release Notes for each version or revision of Harlequin Core
- Some stand-alone documents such as the Harlequin Core LDK FAQ.
The Harlequin Core LDK FAQ document is currently work in progress and is not yet available online; please contact Harlequin Customer Support for an updated PDF of the draft.
These files can be found under Harlequin Core Home.
Documentation provided in the "doc" directory of the SDK itself
HqnRIP_SDK_InterfaceRef.chm
(and equivalents on other platforms)Monitoruids.html
and.csv
Example PostScript code, in the SDK
TestConfigs
in SW/TestConfigs- Page features in SW/Page features
- Example code and sample 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, and using the abbreviations shown above (for example, <SDK> for the SDK Developer's Guide).
Working with the SDK
- Installation
- <GSG> - Getting Started
- <SDK> – How to install the Harlequin Core SDK
- File structure on disk
- <SDK> – File structure
- Running the Harlequin Core test framework, clrip
- <GSG> - Getting Started
- <SDK>– Using the Harlequin Core SDK test harness
- Supported operating systems and compiler versions
- See the Release Notes for the Harlequin Core release that you're working with
- <SDK> Setting the locale on Linux and macOS
- Building the clrip test application
- Programming with Harlequin Core
- Designing your integration
- <SDK> - Harlequin Core SDK capabilities
- <SDK>– Integrating the Harlequin Core SDK library
- <SDK>- The minrip
- <SDK>- Starting the Harlequin Core
- File system
- <EXT>– Files, filters, and devices
- <SDK>– Union device
- Communication from core to skin
- Tracking RIP processing
- <SDK>– RDR and Event systems
- <API>– RDR and Event APIs
- <SDK>– Timelines
- <API>– Timeline API
- <API> - The Timer library API
- <SDK>– The timer library
- Memory
- Integrating new releases of Harlequin Core
Submitting jobs to the RIP
- Supported file types
- <SDK>– Input formats
- White paper: The impact of PDF 2.0 on print production
- Submitting job files
- <SDK>– Input methods for Harlequin Core
- <SDK> - Scalable RIP and the input queue
- EPS Page Feature in SW\Page Features
- Core RIP configuration
- <SDK>– Configuration location
- Sample TestConfigs in SW\TestConfigs directory
- Sample Page Features in SW\Page Features directory
- See also Example TestConfigs (see below) and Example Page Features (see below)
- Sizing and configuring image files such as TIFF and JPEG
- <EXT> - The HqnImage procset
- Debugging
- <SDK>- Example output from the clrip -! 3 option
monitoruids.csv
in the doc directory of an installed SDK- <EXT> - The Harlequin Extended Error Handler
- <EXT> - The HqnAssert procset
- Page Feature: Error Handler – Long (see Example Page features, below)
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
- 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.0
- White paper: The impact of PDF 2.0 on print production
Outputting from Harlequin Core
- Overview
- <SDK> - Output formats and configuration files
- <SDK> - Output methods
- When using the clrip test application
- <SDK>– Using the clrip application, especially
-o
and-s
- <SDK>– Override pagebuffer type
- <SDK>– Override output target
- <SDK>– Using the clrip application, especially
- Raster output code – "raster back ends"
- Band delivery
asynctiffrast.c
example raster back end – pointers to asynchronous raster output, band delivery in any order
- Passing metadata to the raster back end
- <EXT>– %pagebuffer% device parameters
- <EXT>– Adding custom page device keys
- <SDK>- RasterDescription
- <SDK> - Structured data parameters for raster handlers (this functionality replaces editing the pgbdev.c file in skin source)
- <SDK> - Parameters for the LIBTIFF and FRAMETIFF raster backends
- Raster back-end memory management
Specifying the output colorants
- Specify which colorants are used in the output
- <SDK>– Specifying color output capabilities (
ColorantFamilies
) - <EXT>– SeparationDetails
- Example TestConfigs
- <SDK>– Specifying color output capabilities (
- Extended gamut colorant sets (for example, CMYKOG)
- <EXT>– XG Devices
- Example TestConfigs CMYKOGVCompBand300dpi
- Generating RGB thumbnails and previews
RGBPreview
example page feature- <EXT>– HqnImpose2 Thumbnail suffix
- PhotoInk sets (for example, with light cyan)
- <EXT>– Photoink devices
HqnRIP_SDK_InterfaceRef
–photoinkdev.c
File Reference- Example TestConfigs (see below): PhotoinkBand300dpi
- CMYK+White
- Example TestConfigs (see below): CMYKCompWhite300dpi
- Automatically omit blank colorants
- Adding an Object Map channel
- <EXT>– The object map
- <SDK>– Specifying color output capabilities (
ColorantFamilies
ColorantType
) - Example TestConfigs (see below): CMYKCompositeBand300dpiObjectTypeMap
- Adding mask channels
- <EXT>– Example: Generating CT, LW, and mask channels
- Example TestConfigs (see below): RGBAComposite300dpi
Specifying the raster format
- Overview
- 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 SeparationDetails
- Example TestConfigs (see below)
- Specify bit depth for output from the RIP
- <EXT>– ValuesPerComponent in the page device
- Technical Note Hqn094: HalftoneType 1009
- Example TestConfigs (see below)
- Selecting TIFF output compression
Halftones/screens
- Screening backgrounder for inkjet
- General
- 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 TestConfigs in 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 interface
HqnRIP_SDK_InterfaceRef.chm
– Screening module examples- Example TestConfigs in SW\Testconfigs\HTM
- Advanced Inkjet Screens
- Hqn096 - Advanced Inkjet Screens
- Example TestConfigs in AIS package (AIS installers are separate packages from the Harlequin Core SDK)
- AIS Tools – a separate package from the Harlequin Core SDK
- Multi-level screening (for example, for grayscale inkjet heads)
- Hqn094 - Mixing multi-bit screens 18012019
- Example
TestConfigs
in AIS package: CMYKOGVMirrorMix300dpi, CMYKOGVPearlMix300dpi
- Object type screening
- Hybrid 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
- <EXT> - GGS extension, HalftoneType 116
Color management
- Backgrounder
- White paper: Color management for digital label presses
- General
- 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 device
- Example Page features (see below): CMYKBasicColorManagement
- Chaining additional output color profiles for emulation, ink limiting, and so on
- <EXT>– NextDevice named colorants
- Example Page features (see below): CMYKInkLimiting and CMYKEmulatingAndLimiting
- Color management for extended gamut colorant sets
- <Ext>– XG Devices
- Example Page features (see below): CMYKOGVDirectColor and CMYKOGVviaCMYK
- Specifying 1D calibration tables
- 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
HqnRIP_SDK_InterfaceRef
- Color management examples- Example
TestConfig
(see below): CMYKCMMComposite300dpi
- Compliance with Ghent Working Group Output Suite
- Example Page features (see below): 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
- <API>– Brand color editing API
- Omitting a spot color and ensuring no others are knocked out
- <EXT>– Completely ignore one or more spot colors
- Example Page features (see below): 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 (see below): ExportContours
- Aliasing input separation names to colorants with different names
- <SDK>– 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
- <EXT>– The HqnMissingFonts procset
Optimizing performance
- Threads
- Running multiple RIPs
- Variable Data as optimized PDF and PDF/VT
- White paper: High-performance variable data printing using PDF
- <SDK>– Optimizing variable data with Harlequin VariData
- <API>– Harlequin VariData API
- <EXT>– Configuring 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
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
- <SDK>–
PageRelativeBBox
in RasterDescription
- In-RIP imposition and annotation
- <EXT>– Imposition features
- <EXT>– Simple imposition
- 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 (see below): Image Replacement
- In-RIP barcode generation
- <EXT>– Barcode operator
- <EXT>– Drawing standard HqnImpose2 marks –
ControlBarcode
- Sample jobs:
Tickets.ps
Security and copy protection
- LDK security
- <SDK>– Harlequin Core security
The Harlequin Core LDK FAQ document
The Harlequin Core LDK FAQ document is currently work in progress and is not yet available online; please contact Harlequin Customer Support for an updated PDF of the draft.
- 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 TestConfigs
, Page Features, and sample jobs to illustrate some of the more commonly used functionality in the RIP.
TestConfigs
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 the Getting Started Guide and the SDK Developer's Guide.
The example TestConfigs
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 TestConfigs
TestConfigs
provide the foundation for the RIP configuration in preparation for processing a job.
Many of the example TestConfigs
configure the RIP to deliver rasters at 300dpi. 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 TestConfig
and rename it, then edit the values for X
and Y
resolutions in the HWResolution
line.
Basic TestConfigs
Monochrome72dpi | Generates a monochrome, halftoned raster at 72dpi |
CMYKComposite300dpi | Generates a CMYK, contone raster at 300dpi, 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 300dpi. 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 72dpi) |
CMYKHalftoned600dpi | Generates a CMYK, raster at 600dpi, 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 300dpi) |
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. (New in Harlequin Core 13.0r1, replacing CMYKCompositeBand300dpiObjectTypeMap in previous releases) |
CMYKRle300dpi | Outputs raster as 10-bit contone in RLE rather than raw eight-bit |
CMYKWhiteCompBand300dpi | Sets up composite output to CMYK plus White. This may also be used as a template for other spot inks on press (new in Harlequin Core 13.0r1) |
CMYKOGVCompBand300dpi | A variant on CMYKCompositeBand300dpi, but outputting to an extended gamut colorant set (CMYKOGV). This TestConfig 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 300dpi, 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 eight-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. The mask is created using an object map, and configuring that map to show 0 for unmarked pixels, and 255 for marked ones. |
TestConfigs provided in JSON
From Harlequin Core 13.1 onwards TestConfigs may be provided in JSON as an alternative to PostScript. Sample JSON TestConfigs mirroring all those listed above may be found in SW/TestConfigs/JSON
, under the same names but with the extension.json.
Schemas for validating Harlequin Core JSON TestConfigs may be found in SW/TestConfigs/JSON/schemas.
Additional screening-related example TestConfigs
The HTM folder includes additional example TestConfigs for use while evaluating and developing the modular screening API.
TestConfigs 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 TestConfig. In a production system you might choose to add code similar to these page features into your TestConfigs or stream it to the RIPs with your jobs.
AntiAlias | Smooths contone raster output by applying anti-aliasing. This Page feature is compatible only with contone TestConfigs. |
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 RIPing 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 (new in Harlequin Core 13.0r1). |
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 TestConfigs. |
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 TestConfigs. |
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 TestConfigs. |
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 TestConfig. |
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.