Page tree
Skip to end of metadata
Go to start of metadata


Overprinting is a technique, commonly used by PDFs, which are destined for print. When an object is not set to overprint, the downstream RIP will remove all color beneath the object (it's knocked out). This is fine for simple RIPs and jobs, since it reduces the complexity of separation generation.

It can, however, cause issues with black text. In this scenario, the black text knocks out all the background color beneath it. This means that when printed, the head alignment and registration needs to be perfect, otherwise you'll see small white borders around the text. When switching the text to overprint, the black is printed on top of the background color, removing any potential registration issues.

The image above shows two images, the top image uses overprint on the 'g' character, which shows that the red background is not knocked out. The bottom image does not use overprint, resulting in a knockout of the red background.

Setting Overprint

Setting overprint in Mako requires use of the 'DeviceParams' property. This can be set on any node, but it only applies to that specific node, not it's children. Therefore, it makes most sense to set it on char path groups, paths and glyphs.

The 'DeviceParams' property is a bitmask which toggles the application of overprint and stroking commands.

The code below shows how to set the bit mask to turn on overprint for the node.

Setting Overprint
enum eDeviceParameters
    eDPOverprintMode = 1,
    eDPOverprintFill = 2,
    eDPOverprintStroke = 4

void setOverprint()
	// Find a node...

	node->setProperty("DeviceParams", eDPOverprintMode | eDPOverprintFill);

  • No labels