Mako 7.3.0 API
JawsMako::IRendererTransform Class Referenceabstract

A transform for selective rendering of sections of a DOM tree, replacing the rendered items with an image representation. Currently only operates on IDOMFixedPages; this restriction should be eased in future versions. More...

#include <transforms.h>

Inheritance diagram for JawsMako::IRendererTransform:

Public Member Functions

virtual bool probe (const IDOMNodePtr &node)=0
 Probe the node, checking to see if the renderer transform would have any effect on this node if transformed.
 
virtual void setResolution (uint32 resolution)=0
 Sets the target resolution for rendering, in dpi. The default is 300dpi.
 
virtual uint32 getResolution () const =0
 Get the target resolution for rendering.
 
virtual void setTargetSpace (const IDOMColorSpacePtr &space)=0
 Sets the target final color space for rendered content. scRGB, Indexed, DeviceN or LAB spaces are not allowed. Further limitations exist if monochrome mode is used; see the description of setMonochromeMode() for details. The default is DeviceRGB.
 
virtual IDOMColorSpacePtr getTargetSpace () const =0
 Get the target color space for rendering.
 
virtual void setSWOPTargetSpace ()=0
 Convenience; Set the target space to CMYK using the default SWOP profile. This will fail if monochrome mode is used; see the description of setMonochromeMode() for details.
 
virtual void setTargetProfile (const IDOMICCProfilePtr &profile)=0
 Sets the target final color space for rendered content, using a profile.
 
virtual void setEnableVectorMode (bool enable)=0
 Enable "vector" flattening mode. More...
 
virtual void setUseImageResolutionForRenderingWherePossible (bool enable)=0
 Set whether or not areas with compatible images may be rendered at image resolution if possible when vector flatting mode is enabled (see setEnableVectorMode()) More...
 
virtual void setVectorAndTextResolution (uint32 resolution)=0
 Set the desired resolution for vector and textual content when vector flattening mode is enabled (see setEnableVectorMode()). More...
 
virtual void setRasterFallbackThreshold (uint32 threshold)=0
 For cases where the vector mode is used, set the threshold at which to fall back to raster mode for a particular renderable area. More...
 
virtual void setRasterFallbackResolution (uint32 resolution)=0
 Set the resolution to be used for areas where vector mode falls back to raster mode. That is, if an area being rendered is more complex than that specified by setRasterFallbackThreshold, this is the resolution that should be used. More...
 
virtual void setVectorImageReuseCacheSize (uint32 reuseCacheSizeMB)=0
 Set whether or not the renderer, with vector mode enabled, should attempt to reused flattened sections from previously rendered areas, and if so, set the maximum size of the cache in megabytes. More...
 
virtual void setEnableFormSnappingForVectorReuse (bool enable)=0
 Set whether or not the renderer, with vector mode amd vector image reuse enabled, should be allowed to align forms to pixel boundaries to improve caching reuse. More...
 
virtual void setVectorAreaFormReuseCacheSize (uint32 formCount)=0
 Set whether or not the renderer, with vector mode enabled, should cache entire flattened sections as IDOMForm objects, and if so, set the maximum size of the cache (in items). More...
 
virtual void setVectorAreaSourceReuseCacheSize (uint32 count)=0
 Set whether or not the renderer, with vector mode enabled, should attempt to cache entire flattened areas based on the source content, and if so, set the maximum size of the cache (in items). More...
 
virtual void setMarkVectorFlattenedFontsForEmbedding (bool embed)=0
 Set whether or not fonts that are used for vector flattening should be marked for embedding. More...
 
virtual void setFormReconstructionCacheSize (uint32 formCount)=0
 Set whether or not the renderer should attempt to reconstruct forms that it needed to unpack due to the rendering of content within the form, and if so, set the maximum size of the cache to use (in items). More...
 
virtual void setRasterImageReuseCacheSize (uint32 reuseCacheSizeMB)=0
 Set whether or not the renderer should attempt to cache rendered results for raster rendering, and if so, set the maximum size of the cache, in megabytes. More...
 
virtual void setMonochromeMode (bool enable=true)=0
 Sets whether or not to use monochrome output. More...
 
virtual void setSpotHalftone (float frequency, bool useFullResolutionForFlattening=false)=0
 Set the simple spot haltone to be used when monochrome mode is enabled. More...
 
virtual void setThresholdHalftone (uint32 width, uint32 height, const CThresholdArray &thresholds)=0
 Set a threshold array halftone to be used when monochrome mode is enabled. More...
 
virtual void setPreserveSpots (const CSpotColorNames &preservedSpots)=0
 Provide a list of spots to retain in the output, if present. In the default case, no spots will be retained. This function will fail if monochrome mode is used; see the description of setMonochromeMode() for details. More...
 
virtual void setPreserveAllSpots (bool preserve)=0
 Alternatively preserve all spot colors in the output. The default is false. This function will fail if monochrome mode is used; see the description of setMonochromeMode() for details. More...
 
virtual void setMergeSpots (const CSpotColorNames &mergedSpots)=0
 Merge the given spot components into the process components after rendering. This is only currently possible when rendering to a CMYK based process color space, and is ignored otherwise. Only affects rendered content. In the default case, no spots will be merged. This feature is especially useful for emulating overprint of spot components. More...
 
virtual void setMergeAllSpots (bool merge)=0
 Alternatively merge all spot colors in the output. This is only currently possible when rendering to a CMYK based process color space, and is ignored otherwise. Only affects rendered content. In the default case, no spots will be merged. This feature is especially useful for emulating overprint of spot components. More...
 
virtual void setDropSpots (const CSpotColorNames &droppedSpots)=0
 Provide a list of spots to drop from rendered content. In the default case, no spots will be dropped. Note that this feature does not affect content that is not rendered; please see #IColorConverterTransform::setDeviceNHandling which can be used for that purpose. This function will fail if monochrome mode is used; see the description of setMonochromeMode() for details. More...
 
virtual void setBlackPreservation (bool preserveForText, bool preserveForOther)=0
 Enable/control 100% black preservation. More...
 
virtual void setGenerateMasks (bool generate)=0
 Set whether or not to generated masked images as the rendererd result. If true, the individual images generated as part of rendering will have a bilevel alpha channel providing a mask to just the silhouette of the dom nodes targettted for rendering. This generally results in better looking results at the intersection between rendered and non-rendered sections. The default is true. More...
 
virtual void setUseMultipleThreads (bool useMultipleThreads)=0
 Set whether the transform should use multiple threads when rendering sections of the tree. When enabled, a global thread pool is used. The default is true.
 
virtual void setRenderObjectsIndividually (bool renderIndividually)=0
 Set whether or not to render each renderable object into its own image. The default is false. Normally the renderer will attempt to produce a single image for overlapping or nearby objects in an attempt to reduce the number of images generated and improve performance. Setting this to true will instead produce a single image in the output for every object that would be rendered. If set to true, this overrides any setting made with setRenderOncePerRenderableArea().
 
virtual void setRenderOncePerRenderableArea (bool renderOnce)=0
 Set whether or not to render just one image per renderable region. That is, if true, the renderer will not produce any overlapping rendered images in the result. The default is false. This setting is ignored if setRenderObjectsIndividually() has been set to true.
 
virtual void setMaximumImageAreaMultiple (float limit)=0
 Set the maximum amount of allowed overdraw in the rendered results. Ordinarily the renderer attempts to retain non-renderable content in its original form, which can require rendering to multiple images. For cases where the dom tree consists of highly layered combinations of renderable and non-renderable content, the amount of image data generated can be very high. This provides a method of putting a cap on the amount of image data that can be generated. The parameter is a threshold in units of multiples of the entire candidate area. That is if a value of 5 is specified, and in ordinary circumstances rendering would generate more than 5 times the candidate area, then the renderer will render the results in a single image.
 
virtual void setMaximumRenderedResultPixels (uint64 maximum)=0
 Set the maximum size (in pixels) of a rendered result. More...
 
virtual void setGenerateFlateCompressedPDFImages (bool enable)=0
 Set whether or not the images generated by the renderer transform should be compressed with Flate as IDOMPDFImage objects. Currently this setting is only honored when vector mode is enabled. More...
 
virtual void setMinimumFlateCompressedImageSize (uint32 minSizePixels)=0
 Set the minimum size, in pixels, of images that would be compressed with Flate according to setGenerateFlateCompressedPDFImages. More...
 
virtual void renderNodesWithRenderFlagSet (bool render)=0
 Set whether nodes with the IDOMNodeFlags::eNodeRenderFlag set should be rendered. This is useful if arbitrary objects need to be marked for rendering within a tree, or if none of the rules below are a good fit. The default is false.
 
virtual void setShouldRenderCallback (ShouldRenderNodeFunc func, void *priv)=0
 Provides a callback function, called for each node that is not chosen for rendering according to any of the other rules. This function returns true if the node should be rendered. Perhaps simpler in some situations than applying the marker flag externally and using renderNodesWithRenderFlagSet(true). priv is passed to the callback function for every call. The function can also interrogate the children siblings and parent of the node.
 
virtual void renderTransparentNodes (bool render)=0
 Set whether transparent objects should be renderered. Useful for blanket flattening of all transparency in a DOM tree. The default is false.
 
virtual void setRenderTransparentNodesOnPageGroupMismatch (bool render)=0
 Set whether to render transparent nodes if the page blending group color space differs from the rendering target color space. More...
 
virtual void renderNonNormalBlendedNodes (bool render)=0
 Set whether nodes using a blend mode other than eBlendModeNormal should be rendered. Useful for preparing PDF content for consumers that do not support these blend modes, such as XPS. The default is false.
 
virtual void renderNonCanvasTransparencyGroups (bool render)=0
 Set whether transparency groups that cannot be represented as a canvas should be rendered. The default is false.
 
virtual void renderMaskedImages (bool render)=0
 Set whether images with boolean mask channels should be rendered. The default is false.
 
virtual void renderOpacityMaskedNodes (bool render)=0
 Set whether nodes with opacity masks should be rendered. The default is false.
 
virtual void renderBrush (IDOMBrush::eBrushType brushType, bool render=true)=0
 Set whether the brush of the given type should be rendered. In all cases, the default is false.
 
virtual void ignoreBrushWhileScanning (IDOMBrush::eBrushType brushType, bool ignore=true)=0
 Set whether the brush of the given type should be ignored when scanning for items to render. If true, brushes of that type will not trigger rendering. In all cases the default is false.
 
virtual void renderComplexType3ShadingPatterns (bool render)=0
 Set whether to render Type 3 shading pattern brushes that cannot currently be converted to a simpler form by IDOMShadingPatternType3Brush::getEquivalentSimpleBrush(). The default is false.
 
virtual void renderComplexTilingPatterns (bool render)=0
 Set whether to render tiling pattern brushes that cannot currently be converted to a visual brush form by IDOMTilingPatternBrush::getEquivalentVisualBrush() such as self-intersecting patterns. The default is false.
 
virtual void renderVisualBrushesWithViewPortLargerThan (double val)=0
 Set whether visual brushes with a ViewPort brushes above a certain size should be rendered. Some consumers cannot reliably handle large visual brushes, and this provides a method of dealing with this. The default is 0.0, which disables this feature.
 
virtual void renderConeGradients (bool render)=0
 Set whether radial gradients with a cone shape should be rendererd. The default is false.
 
virtual void renderGlyphsWithStyleSimulation (bool render)=0
 Set whether glyphs with style simulations should be rendered. The default is false.
 
virtual void renderGlyphsWithRestrictedFont (bool render)=0
 Set whether glyphs using a restricted font should be rendered. That is, a font which has bit 1 of the OS/2 fsType field set, or are marked as bitmap only. The default is false.
 
virtual void renderGlyphsWithNonSubsettableFont (bool render)=0
 Set whether glyphs using a font that is not allowed to be subset (according to its OS/2 fsType field) should be rendered. The default is false.
 
virtual void renderGlyphsWithNonEditableFont (bool render)=0
 Set whether glyphs using a font that is not allowed in an edited document (according to its OS/2 fsType field) should be rendered. The default is false.
 
virtual void renderGlyphsWithType3Font (bool render)=0
 Set whether glyphs using a Type 3 font should be rendered. The default is false.
 
virtual void enableTrueTypeNotDef (bool enable)=0
 Set whether a TrueType font's .notdef glyph should be rendered. Note that this does not control whether or not a containing glyphs node is actually rendered. However, if a glyphs node is required to be rendered, and a TrueType notdef glyph is required, this controls whether or not the notdef glyph will be present in the rendered result. The default is false.
 
- Public Member Functions inherited from JawsMako::ITransform
virtual IDOMBrushPtr transform (const IDOMBrushPtr &brush, eBrushUsage usage=eBUGeneral, const CTransformState &state=CTransformState())=0
 Apply the transform to the given brush, if applicable. These transforms are thread safe. More...
 
virtual IDOMImagePtr transform (const IDOMImagePtr &image, const CTransformState &state=CTransformState())=0
 Apply the transform to the given image, if applicable. These transforms are thread safe. More...
 
virtual IDOMColorPtr transform (const IDOMColorPtr &color, const CTransformState &state=CTransformState())=0
 Apply the transform to the given color, if applicable. These transforms are thread safe. More...
 
virtual IDOMColorSpacePtr transform (const IDOMColorSpacePtr &colorSpace, const CTransformState &state=CTransformState())=0
 Apply the transform to the given colorspace, if applicable. These transforms are thread safe. More...
 
virtual IDOMNodePtr transform (const IDOMNodePtr &node, bool &changed, bool transformChildren=true, const CTransformState &state=CTransformState())=0
 Apply the transform to the given node, if applicable. These transforms are thread safe, providing no other transforms are being applied to the same nodes at the same time. More...
 
virtual void transformPage (const IPagePtr &page, bool transformContent=true, bool transformAnnotations=true)=0
 Apply the transform to the given page, if applicable. These transforms are thread safe, providing no other transforms are being applied to the same nodes at the same time. The transform will also apply to the annotations appearances. More...
 
virtual void flushCaches ()=0
 Flush the caches used by the transform. Most transforms cache recently transformed results to improve the performance of repeated transformations of equivalent results. However, it is possible that some cached results may point to entities that no longer exist, such as content inside an XPS file that no longer exists. If you are deleting or replacing files where transforms have been used, it is advisable to invoke this routine to clear the caches.
 
virtual void setProgressMonitor (const IProgressMonitorPtr &progressMonitor)=0
 Set the IProgressMonitor object for this transform to allow for monitoring the progress of the transform. More...
 
- Public Member Functions inherited from IRCObject
virtual void addRef () const =0
 Increases the reference count of the actual object pointed to. This would take place during an assignment or copying.
 
virtual bool decRef () const =0
 Decreases the reference count of the actual object pointed to. When the reference count falls to Zero, it deletes the actual object pointed to. More...
 
virtual int32 getRefCount () const =0
 Retrieve the current reference count of the actual object pointed to. More...
 

Static Public Member Functions

static JAWSMAKO_API IRendererTransformPtr create (const IJawsMakoPtr &jawsMako, const IAbortPtr &abort=IAbortPtr())
 Create the transform. More...
 
static JAWSMAKO_API CInkInfoVect findInks (const IJawsMakoPtr &jawsMako, const IDOMNodePtr &nodeTree, const IAbortPtr &abort=IAbortPtr())
 Find all the inks used in the given DOM node tree. Utility. Also makes an attempt to determine the color value of the colorant.
 
static JAWSMAKO_API CInkInfoVect findInksInColorSpace (const IJawsMakoPtr &jawsMako, const IDOMColorSpacePtr &colorSpace)
 Find all the inks we can determine from the given color space. Utility. Also makes an attempt to determine the color value of the colorant.
 
static JAWSMAKO_API IDOMColorSpaceDeviceN::CColorantInfoVect inkInfoToColorantInfo (const IJawsMakoPtr &jawsMako, const CInkInfoVect &inkInfo, const IDOMColorSpacePtr &processSpace)
 Static utility to convert a CInkInfoVect into DeviceN-compatible CColorantInfo vector. More...
 

Additional Inherited Members

- Protected Member Functions inherited from IRCObject
virtual ~IRCObject ()
 Virtual destructor.
 

Detailed Description

A transform for selective rendering of sections of a DOM tree, replacing the rendered items with an image representation. Currently only operates on IDOMFixedPages; this restriction should be eased in future versions.

Useful for rendering sections of the DOM that could not be consumed by a consumer any other way than as an image. For example, this transform is used to flatten objects with certain PDF transparency attributes before generating XAML or XPS output.

Member Function Documentation

◆ create()

static JAWSMAKO_API IRendererTransformPtr JawsMako::IRendererTransform::create ( const IJawsMakoPtr &  jawsMako,
const IAbortPtr &  abort = IAbortPtr() 
)
static

Create the transform.

Parameters
jawsMakoThe JawsMako instance.
abortAn abort callback handler.
Returns
The new instance.

◆ inkInfoToColorantInfo()

static JAWSMAKO_API IDOMColorSpaceDeviceN::CColorantInfoVect JawsMako::IRendererTransform::inkInfoToColorantInfo ( const IJawsMakoPtr &  jawsMako,
const CInkInfoVect &  inkInfo,
const IDOMColorSpacePtr &  processSpace 
)
static

Static utility to convert a CInkInfoVect into DeviceN-compatible CColorantInfo vector.

Parameters
jawsMakoThe Mako instance to use.
inkInfoThe ink info to convert.
processSpaceThe process color space to use for the components.
Returns
IDOMColorSpaceDeviceN::CColorantInfoVect The color component vector.

◆ setBlackPreservation()

virtual void JawsMako::IRendererTransform::setBlackPreservation ( bool  preserveForText,
bool  preserveForOther 
)
pure virtual

Enable/control 100% black preservation.

    100% black preservation preserves a 100% black output when rendering/
    flattening when enabled for certain solid colors.

    A 100% black object is an object painted with one of the following
    colors:

    - 0 0 0 1 in any CMYK color space (including ICC)
    - 0 0 0 in any RGB color space (including ICC)
    - 0 in any Gray colorspace (including ICC)
    - 1 in a single channel DeviceN (aka Separation) Black color space
    - 1 in a multi-channel DeviceN colorspace where only the Black channel
      is set.

    If black preservation applies then the resulting color will be either
    (depending on the target color space):

    - c m y 1 in any CMYK colorspace (including ICC)
    - 0 0 0 in any RGB colorspace (including ICC)
    - 0 in any Gray colorspace (including ICC)

    Note that the CMY values in a CMYK result may not be zero if color
    managed white conversion would not produce pure white.

    Note also that where transparency is involved this conversion only
    applies when converting to the blending colorspace, and has no
    further effect for further conversions.

    May be enabled separately for text and vector art. Applies to only
    solid color brushes (IDOMSolidColorBrush) and uncolored tiling
    patterns only.

    The default is set by #IColorManager::setDefaultBlackPreservation(),
    which defaults to false, false. The default is applied at the time
    of transform creation.
Parameters
preserveForTextWhether or not to apply black preservation for text.
preserveForOtherWhether or not to apply for non-text objects.

◆ setDropSpots()

virtual void JawsMako::IRendererTransform::setDropSpots ( const CSpotColorNames &  droppedSpots)
pure virtual

Provide a list of spots to drop from rendered content. In the default case, no spots will be dropped. Note that this feature does not affect content that is not rendered; please see #IColorConverterTransform::setDeviceNHandling which can be used for that purpose. This function will fail if monochrome mode is used; see the description of setMonochromeMode() for details.

Please note that if any spot colorant is subject to setPreserveSpots, setPreserveAllSpots, setMergeSpots, setMergeAllSpots and/or setDropSpots, then the following rules apply in order:

◆ setEnableFormSnappingForVectorReuse()

virtual void JawsMako::IRendererTransform::setEnableFormSnappingForVectorReuse ( bool  enable)
pure virtual

Set whether or not the renderer, with vector mode amd vector image reuse enabled, should be allowed to align forms to pixel boundaries to improve caching reuse.

This allows better reuse if forms containing rendered content are repeated at different locations on the page (but with the same scale).

The default is false, meaning that no alignment is attempted.

◆ setEnableVectorMode()

virtual void JawsMako::IRendererTransform::setEnableVectorMode ( bool  enable)
pure virtual

Enable "vector" flattening mode.

    NOTE: This is functionality is beta quality only at this time.

    With this mode set, the renderer will attempt to maintain vector
    and textual information as much as possible in its results, and
    may not need to render some objects at all.

    However, for very complicated cases this may result in a large
    amount of output geometry that could result in larger output
    files or files that process more slowly than an equivalent
    raster render.

    If monochrome mode is enabled, this setting is completely ignored.

    The default is false.

    Currently, setting this parameter to true will result in the
    following parameters to have different semantics:

    - setRenderOncePerRenderableArea() (will be forced to false)
    - renderMaskedImages() (will only be used where a fallback to
      raster is required; see setRasterFallbackThreshold())

◆ setFormReconstructionCacheSize()

virtual void JawsMako::IRendererTransform::setFormReconstructionCacheSize ( uint32  formCount)
pure virtual

Set whether or not the renderer should attempt to reconstruct forms that it needed to unpack due to the rendering of content within the form, and if so, set the maximum size of the cache to use (in items).

This feature is only useful if the content is to be written to a PDF output where form objects can have benefits.

In order to accurately position rendered/flattened content, the replacement content is inserted at the top level of the DOM tree. This may require the forms to be split at the point the rendering occurred.

This uses a cache to reuse recently rendered forms. Form reuse is performed by examining the content of the unpacked forms based on their graphical attributes only, and different forms in the input that share appearances may result in a single form in the output. As such, if your use case depends on non-printing information present in such objects, such as document structure or optional content, it is best not to enable this feature.

The default is 0, meaning that no forms are reconstructed and no reuse is attempted.

◆ setGenerateFlateCompressedPDFImages()

virtual void JawsMako::IRendererTransform::setGenerateFlateCompressedPDFImages ( bool  enable)
pure virtual

Set whether or not the images generated by the renderer transform should be compressed with Flate as IDOMPDFImage objects. Currently this setting is only honored when vector mode is enabled.

It may not be desirable to compress very small images in this way, as it precludes the use of Indexed color spaces for very small images. As such another API is provided to provide a lower limit for image size that will be subject to this flate compression.

If the intended use is PDF output, this can result in faster processing as images will already be in the correct format for copying directly into the PDF file, and also the image will generally require less temporary storage.

The default is false.

◆ setGenerateMasks()

virtual void JawsMako::IRendererTransform::setGenerateMasks ( bool  generate)
pure virtual

Set whether or not to generated masked images as the rendererd result. If true, the individual images generated as part of rendering will have a bilevel alpha channel providing a mask to just the silhouette of the dom nodes targettted for rendering. This generally results in better looking results at the intersection between rendered and non-rendered sections. The default is true.

If monochrome mode is used this function may only be called with false. See the description of setMonochromeMode() for details.

◆ setMarkVectorFlattenedFontsForEmbedding()

virtual void JawsMako::IRendererTransform::setMarkVectorFlattenedFontsForEmbedding ( bool  embed)
pure virtual

Set whether or not fonts that are used for vector flattening should be marked for embedding.

If true, any font used for any geometry that defines a flattened geometry will be marked for embedding, providing that the font in question is not restricted from embedding. This does not affect non-flattened content on the page. Please note that PDF and PS output will ignore this flag for standard built-in fonts for their respective formats.

If false, the embedding status is preserved as is.

The default is true.

◆ setMaximumRenderedResultPixels()

virtual void JawsMako::IRendererTransform::setMaximumRenderedResultPixels ( uint64  maximum)
pure virtual

Set the maximum size (in pixels) of a rendered result.

    On large jobs or at very high resolutions, a rendered section may result
    in very large images, potentially in the gigabyte range. Depending on
    how the output is used, this may result in output that will cause
    problems with downstream consumers.

    This allows a limit to be applied for each rendered section. The limit is
    specified in pixels.

    If the limit is exceeded, the renderer will divide the rendered section
    into horizontal bands no larger than this limit. However, it will not
    break apart rendered areas to smaller units than a single scanline, so in
    the unlikely case where a single rendered scanline is extremely wide,
    this limit will be exceeded.

    Set to zero to disable the limit entirely.

    The default is 125 million samples.

◆ setMergeAllSpots()

virtual void JawsMako::IRendererTransform::setMergeAllSpots ( bool  merge)
pure virtual

Alternatively merge all spot colors in the output. This is only currently possible when rendering to a CMYK based process color space, and is ignored otherwise. Only affects rendered content. In the default case, no spots will be merged. This feature is especially useful for emulating overprint of spot components.

Please note that if any spot colorant is subject to setPreserveSpots, setPreserveAllSpots, setMergeSpots, setMergeAllSpots and/or setDropSpots, then the following rules apply in order:

◆ setMergeSpots()

virtual void JawsMako::IRendererTransform::setMergeSpots ( const CSpotColorNames &  mergedSpots)
pure virtual

Merge the given spot components into the process components after rendering. This is only currently possible when rendering to a CMYK based process color space, and is ignored otherwise. Only affects rendered content. In the default case, no spots will be merged. This feature is especially useful for emulating overprint of spot components.

Please note that if any spot colorant is subject to setPreserveSpots, setPreserveAllSpots, setMergeSpots, setMergeAllSpots and/or setDropSpots, then the following rules apply in order:

◆ setMinimumFlateCompressedImageSize()

virtual void JawsMako::IRendererTransform::setMinimumFlateCompressedImageSize ( uint32  minSizePixels)
pure virtual

Set the minimum size, in pixels, of images that would be compressed with Flate according to setGenerateFlateCompressedPDFImages.

As noted, it may not be desirable to compress very small images using flate at the renderer stage. Please see setGenerateFlateCompressedPDFImages for details.

If the intended use is PDF output, this can result in faster processing as images will already be in the correct format for copying directly into the PDF file, and also the image will generally require less temporary storage.

The default is 0, which enforces that all images generated from vector-based rendering would be compressed using flate (if setGenerateFlateCompressedPDFImages is set to true).

◆ setMonochromeMode()

virtual void JawsMako::IRendererTransform::setMonochromeMode ( bool  enable = true)
pure virtual

Sets whether or not to use monochrome output.

    Use of this mode is supported only in specific circumstances.
    please contact Global Graphics support for details.

    The default is false; that is, continuous tone output will be
    produced, in color or grayscale as determined by the selected
    target color space or profile.

    If set to true, the output will be one-bit black and white
    halftoned images for each sections. This should only be used
    for specialised output requirements where the characteristics
    of the output device are well known and understood.

    If enabling:
      - If the current target color space is not DeviceGray or
        sGray, sGray will be set as the target color space.
      - setGenerateMasks() will be set to false. Any attempt to
        change to masked output with setGenerateMasks() will result
        in an exception being thrown.
      - setPreserveSpots() is set to an empty list. Any attemp to
        re-enable spot color preservation will result in an
        exception being thrown.

◆ setPreserveAllSpots()

virtual void JawsMako::IRendererTransform::setPreserveAllSpots ( bool  preserve)
pure virtual

Alternatively preserve all spot colors in the output. The default is false. This function will fail if monochrome mode is used; see the description of setMonochromeMode() for details.

Please note that if any spot colorant is subject to setPreserveSpots, setPreserveAllSpots, setMergeSpots, setMergeAllSpots and/or setDropSpots, then the following rules apply in order:

◆ setPreserveSpots()

virtual void JawsMako::IRendererTransform::setPreserveSpots ( const CSpotColorNames &  preservedSpots)
pure virtual

Provide a list of spots to retain in the output, if present. In the default case, no spots will be retained. This function will fail if monochrome mode is used; see the description of setMonochromeMode() for details.

Please note that if any spot colorant is subject to setPreserveSpots, setPreserveAllSpots, setMergeSpots, setMergeAllSpots and/or setDropSpots, then the following rules apply in order:

◆ setRasterFallbackResolution()

virtual void JawsMako::IRendererTransform::setRasterFallbackResolution ( uint32  resolution)
pure virtual

Set the resolution to be used for areas where vector mode falls back to raster mode. That is, if an area being rendered is more complex than that specified by setRasterFallbackThreshold, this is the resolution that should be used.

Using the vector flattener usually allows lower resolutions to be used for compositing image and shading content, as the resolution of the edges is high. This member allows the use of a higher resolution should raster rendering be triggered where the sharp edges defined by the vector content will not be present.

The default is the same as that set by #setRenderResolution(), and indeed, calling #setRenderResolution will result in this resolution being updated also. Therefore, this needs to be called after #setRenderResolution in order to take effect.

◆ setRasterFallbackThreshold()

virtual void JawsMako::IRendererTransform::setRasterFallbackThreshold ( uint32  threshold)
pure virtual

For cases where the vector mode is used, set the threshold at which to fall back to raster mode for a particular renderable area.

The threshold is specified in terms of rendered objects per square inch. If a rendererable area would result in more generated objects than this threshold, the renderer will fall back to a pure raster.

The default value is 100.

A value of 0 will cause the transform to always use a vector approach.

This value is ignored if setEnableVectorMode() is false.

◆ setRasterImageReuseCacheSize()

virtual void JawsMako::IRendererTransform::setRasterImageReuseCacheSize ( uint32  reuseCacheSizeMB)
pure virtual

Set whether or not the renderer should attempt to cache rendered results for raster rendering, and if so, set the maximum size of the cache, in megabytes.

This can provide significant performance improvements for cases where jobs contain reused content that is subject to the renderer.

The default is 0, meaning that no raster results are cached.

◆ setRenderTransparentNodesOnPageGroupMismatch()

virtual void JawsMako::IRendererTransform::setRenderTransparentNodesOnPageGroupMismatch ( bool  render)
pure virtual

Set whether to render transparent nodes if the page blending group color space differs from the rendering target color space.

This affects how blending is performed, and non-rendered transparent content may result in color differences compared with rendered content if there is a mismatch.

To avoid this issue, use true here. If true, and the renderer transform detects that the page blending group color space and the target color space, then all transparent content will be rendered. IDOMColorSpace::similar() is used for this purpose.

If false, the current renderTransparentNodes() setting will be honored.

The default is false.

◆ setSpotHalftone()

virtual void JawsMako::IRendererTransform::setSpotHalftone ( float  frequency,
bool  useFullResolutionForFlattening = false 
)
pure virtual

Set the simple spot haltone to be used when monochrome mode is enabled.

The spot halftone is always at 45 degrees. The default is 60.0f. The halftone is not used if monochrome mode is not enabled. The halftone frequency must be greater than 0. Normally, the resolution at which compositing for transparent images occurs is capped at twice the halftone frequency. For some content, this may not be appropriate. Set useFullResolutionForFlattening for such cases.

◆ setThresholdHalftone()

virtual void JawsMako::IRendererTransform::setThresholdHalftone ( uint32  width,
uint32  height,
const CThresholdArray &  thresholds 
)
pure virtual

Set a threshold array halftone to be used when monochrome mode is enabled.

Only 8 bit threshold arrays are supported, and the threshold array must not be larger than 65535 entries. Please refer to section 7.4.5 of the PostScript language reference manual, 3rd edition.

Parameters
widthThe width of the halftone cell, in pixels
heightThe height of the halftone cell, in pixels
thresholdsThe threshold array. Must be width * height in length, and no longer than 65535 entries.

◆ setUseImageResolutionForRenderingWherePossible()

virtual void JawsMako::IRendererTransform::setUseImageResolutionForRenderingWherePossible ( bool  enable)
pure virtual

Set whether or not areas with compatible images may be rendered at image resolution if possible when vector flatting mode is enabled (see setEnableVectorMode())

If true, and a section of the page that requires flattening contains only images sharing the same scaling and constant fills, and the images are at a lower resolution than the target resolution, then the image data will be flattened at the resolution of the image, and not the target resolution.

If false, such images will be flattened at the target resolution instead.

This is ideal when there is for example, a section of the page where the only non-constant-filled content is a transparent image. If no other images or complex object overlaps, then the image may be replaced with a flattened result at the same resolution as the source image.

The default is true.

◆ setVectorAndTextResolution()

virtual void JawsMako::IRendererTransform::setVectorAndTextResolution ( uint32  resolution)
pure virtual

Set the desired resolution for vector and textual content when vector flattening mode is enabled (see setEnableVectorMode()).

The default is 1200dpi.

◆ setVectorAreaFormReuseCacheSize()

virtual void JawsMako::IRendererTransform::setVectorAreaFormReuseCacheSize ( uint32  formCount)
pure virtual

Set whether or not the renderer, with vector mode enabled, should cache entire flattened sections as IDOMForm objects, and if so, set the maximum size of the cache (in items).

When used in concert with setVectorImageReuseCacheSize() above, this can both improve performance and also reduce output size if large areas of content requiring flattening/rendering are reused.

The default is 0, meaning that no forms are generated and no reuse is attempted.

◆ setVectorAreaSourceReuseCacheSize()

virtual void JawsMako::IRendererTransform::setVectorAreaSourceReuseCacheSize ( uint32  count)
pure virtual

Set whether or not the renderer, with vector mode enabled, should attempt to cache entire flattened areas based on the source content, and if so, set the maximum size of the cache (in items).

This is another level of caching that allows for caching of flattened sections at the DOM stage and before any vector flattening computations have taken place. Highly useful when processing cases that contain large amounts of reuse, especially in concert with setVectorAreaFormReuseCacheSize.

The default is 0, meaning that the cache is not used.

◆ setVectorImageReuseCacheSize()

virtual void JawsMako::IRendererTransform::setVectorImageReuseCacheSize ( uint32  reuseCacheSizeMB)
pure virtual

Set whether or not the renderer, with vector mode enabled, should attempt to reused flattened sections from previously rendered areas, and if so, set the maximum size of the cache in megabytes.

This can provide significant performance benefits particularly for jobs where many pages share content that needs to be flattened/rendered.

The default is 0, meaning that no reuse is attempted.


The documentation for this class was generated from the following file: