Mako 7.3.0 API
Transforms

Transforms. More...

Classes

class  JawsMako::ICustomTransform
 A transform that allows the implementation to be provided externally. More...
 
class  JawsMako::CTransformState
 Class for tracking the graphics state leading to the point where a transform is applied. More...
 
class  JawsMako::ITransform
 ITransforms provide a method of applying common operations on DOM objects such as brushes, nodes, colors, colorspaces or entire trees. Not all transforms will operate on all kinds of objects, as noted in their descriptions. More...
 
class  JawsMako::ITransformChain
 ITransformChain represents a change of ITransforms, and provides a method of applying a range of transforms to an entire DOM tree. Instances of this type attempt to ensure that shared resources are modified once only. More...
 
class  JawsMako::IImageEncoderTransform
 A simple transform for image encoding. Most useful for encoding abstract images such as IDOMRecombineImage, IDOMRawImage and IDOMFilteredImage as PNG, Tiff or Jpeg. Images may be color converted if they are not compatible with the desired image type. More...
 
class  JawsMako::IImageDownsamplerTransform
 A transform for downsampling images above a given effective resolution to a desired target effective resolution. More...
 
class  JawsMako::IColorConverterTransform
 A transform for color conversion, converting all appropriate DOM contents to a desired target color space. More...
 
class  JawsMako::IComplexColorSimplifierTransform
 A simple transform that looks for DeviceN or Indexed color spaces, and where found, simplifies the hosting objects to use the underlying color space (for Indexed cases) or the alternate color space (for DeviceN cases). Useful in particular for consumers that do not support such color spaces. DOM brushes using only the /None colorant in a DeviceN colorspace may be dropped entirely. More...
 
class  JawsMako::IImageMergerTransform
 A simple transform that looks for nearby images and attempts to glom them together in a single image. Some producers can break images up into images consisting of a single scanline; this transform attempts to put them back together again. This transform can handle images with a mask channel, but does not attempt to merge images with an alpha channel. More...
 
class  JawsMako::IOptionalContentFixerTransform
 A simple transform that strips the DOM of any PDF optional content that is not visible for the given document use. This transform also selects from any alternate images, if present. More...
 
class  JawsMako::ICFFCIDSplitterTransform
 A simple transform that looks for CID CFF Fonts containing multiple SubFonts. Some viewers do not support these fonts, or do so poorly. If found, this transform will split out the sub fonts into individual font streams, and adjust the Glyphs nodes where they are used accordingly. More...
 
class  JawsMako::ICFFSanitizerTransform
 A simple transform that scans and sanitises CFF Fonts for wider interoperability. More...
 
class  JawsMako::IStrokerTransform
 A transform for converting some or all stroked paths into plain filled paths. More...
 
class  JawsMako::IFormUnpackerTransform
 A transform for unpacking an IDOMFormInstance directly into the DOM tree. That is, in the DOM tree the IDOMFormInstance is replaced with the unpacked contents of the referenced IDOMForm. More...
 
class  JawsMako::IRendererTransform
 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...
 
class  JawsMako::IRedactorTransform
 A transform for applying redaction redactions. More...
 
class  JawsMako::IType3UnpackerTransform
 A transform for unpacking glyphs using a Type 3 font into regular DOM. More...
 
class  JawsMako::IOverprintSimulationTransform
 A transform that modifies DOM such that any overprint present in the DOM will be visible when written or rendered in an environment that does not support overprint. More...
 
class  JawsMako::IPatternConverterTransform
 Transform to convert PDF/PS tiling/shading patterns to XPS- compatible forms where possible. More...
 
class  JawsMako::IFontProcessorTransform
 A transform for performing font subsetting and merging. More...
 
class  JawsMako::IFontProcessorDeferredTransform
 A transform for performing font subsetting and merging, but it only replaces modified fonts with placeholders. These fonts will /not/ be usable until finaliseFonts() is called. More...
 
class  JawsMako::IBlendSimplifierTransform
 A transform to transform linear or radial gradients with repeat or reflect padding to simpler types. For linear gradients this means a simple linear gradient inside a tiling visual brush. For radial gradients, the stops must be repeated as required. More...
 
class  JawsMako::ISoftMaskConverterTransform
 A transform that converts PDF style soft masks to opacity masks, suitable for XPS. More...
 
class  JawsMako::IFormDeduplicatorTransform
 A transform that attempts to deduplicate graphically identical IDOMForm objects. Note that non-graphical properties, such as additional dictionary entries, structure information, etc, are not consulted when looking for identical forms. More...
 
class  IDOMMatrix
 Defines the render transform matrix. More...
 

Typedefs

typedef CEDLVector< ITransformPtr > JawsMako::CTransformVect
 A vector of transform instances.
 

Enumerations

enum  JawsMako::eBrushUsage {
  JawsMako::eBUNone = 0 , JawsMako::eBUGeneral , JawsMako::eBUFill , JawsMako::eBUStroke ,
  JawsMako::eBUOpacityMask , JawsMako::eBUAlternateImage
}
 When a CTransformState has been pushed for a brush, this indicates the usage of that brush. If we descend into a brush, this allows the transform to know what kind of brush it is in. More...
 

Functions

static JAWSMAKO_API ICustomTransformPtr JawsMako::ICustomTransform::create (const IJawsMakoPtr &jawsMako, IImplementation *implementation, const IAbortPtr &abort=IAbortPtr(), bool dependsOnClipBounds=true, bool dependsOnGroupSpace=true, bool dependsOnRenderingIntent=true, bool dependsOnTransform=true, bool dependsOnBrushUsage=true, bool dependsOnEdgeMode=true, bool dependsOnUncoloredTilingBrush=true)
 Create an ICustomTransform object whose underlying methods are supported by the implementation object. Note - this creation routine will be removed in a future version of Mako and replaced with a version that is equivalent to calling this function with default arguments. More...
 
static JAWSMAKO_API ICustomTransformPtr JawsMako::ICustomTransform::create (const IJawsMakoPtr &jawsMako, IImplementation *implementation, const IAbortPtr &abort, bool dependsOnClipBounds, bool dependsOnGroupSpace, bool dependsOnRenderingIntent, bool dependsOnTransformScale, bool dependsOnTransformOffset, bool dependsOnBrushUsage, bool dependsOnEdgeMode, bool dependsOnUncoloredTilingBrush)
 Create an ICustomTransform object whose underlying methods are supported by the implementation object. More...
 

Detailed Description

Transforms.

Enumeration Type Documentation

◆ eBrushUsage

When a CTransformState has been pushed for a brush, this indicates the usage of that brush. If we descend into a brush, this allows the transform to know what kind of brush it is in.

Enumerator
eBUNone 

No usage indicated.

eBUGeneral 

General brush.

eBUFill 

Indicates a fill.

eBUStroke 

Indicates a stroke.

eBUOpacityMask 

Indicates an opacity mask.

eBUAlternateImage 

Indicates an alternate image.

Function Documentation

◆ create() [1/2]

static JAWSMAKO_API ICustomTransformPtr JawsMako::ICustomTransform::create ( const IJawsMakoPtr &  jawsMako,
IImplementation implementation,
const IAbortPtr &  abort,
bool  dependsOnClipBounds,
bool  dependsOnGroupSpace,
bool  dependsOnRenderingIntent,
bool  dependsOnTransformScale,
bool  dependsOnTransformOffset,
bool  dependsOnBrushUsage,
bool  dependsOnEdgeMode,
bool  dependsOnUncoloredTilingBrush 
)
static

Create an ICustomTransform object whose underlying methods are supported by the implementation object.

Note that internally the transform mechanism uses a caching scheme such that your callback functions are called as infrequently as possible. For example, if your callback edits an IDOMForm, the transform mechanism will attempt to cache the result and avoid calling transformForm() for the same form again if it believes that the results will be the same. This is the purpose of the dependsOn parameters which tell the mechanism whether or not your transform will produce the same results under these circumstances. This will also affect the information passed to the callbacks in the CTransformState.

In this form of the creation routine, there are no default arguments for these dependency arguments. This is to ensure that should the number of dependency parameters change there will be no surprises for existing code.

Parameters
jawsMakoA smart pointer to the JawsMako instance.
implementationThe custom transformation implementation.
abortAn abort callback to allow your transformation to be aborted.
dependsOnClipBoundsIf your transform implementation will return the same results regardless of the clip affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnGroupSpaceIf your transform implementation will return the same results regardless of the transparency group color space affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnRenderingIntentIf your transform implementation will return the same results regardless of the current rendering intent affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnTransformScaleIf your transform implementation will return the same results regardless of how the object being scaled, rotated, or skewed, (that is, transformed by the xx, xy, yx and yy portions of the effective render transform affecting the object) set this to false. Otherwise set this to true.
dependsOnTransformOffsetIf your transform implementation will return the same results regardless of how the object is being offset (that is translated by the dx and dy portions of the render transform affecting the object). Otherwise set this to true. Normally, if dependsOnTransformOffset is set, then dependsOnTransformScale is typically also set.
dependsOnBrushUsageIf your transform implementation will return the same results for a brush regardless of what purpose the brush is used for, set this to false. Otherwise set this to true.
dependsOnEdgeModeIf your transform implementation will return the same results regardless of what edge mode is affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnUncoloredTilingBrushIf your transform implementation will return the same results regardless of whether or not the object is in a colored or uncolored tiling pattern brush, set this to false. Otherwise set this to true.
Returns
ICustomTransformPtr A smart pointer to the ICustomTransform object.

◆ create() [2/2]

static JAWSMAKO_API ICustomTransformPtr JawsMako::ICustomTransform::create ( const IJawsMakoPtr &  jawsMako,
IImplementation implementation,
const IAbortPtr &  abort = IAbortPtr (),
bool  dependsOnClipBounds = true,
bool  dependsOnGroupSpace = true,
bool  dependsOnRenderingIntent = true,
bool  dependsOnTransform = true,
bool  dependsOnBrushUsage = true,
bool  dependsOnEdgeMode = true,
bool  dependsOnUncoloredTilingBrush = true 
)
inlinestatic

Create an ICustomTransform object whose underlying methods are supported by the implementation object. Note - this creation routine will be removed in a future version of Mako and replaced with a version that is equivalent to calling this function with default arguments.

For fine control over dependencies, please see the alternate form below.

Note that internally the transform mechanism uses a caching scheme such that your callback functions are called as infrequently as possible. For example, if your callback edits an IDOMForm, the transform mechanism will attempt to cache the result and avoid calling transformForm() for the same form again if it believes that the results will be the same. This is the purpose of the dependsOn parameters which tell the mechanism whether or not your transform will produce the same results under these circumstances. This will also affect the information passed to the callbacks in the CTransformState.

Parameters
jawsMakoA smart pointer to the JawsMako instance.
implementationThe custom transformation implementation.
abortAn abort callback to allow your transformation to be aborted.
dependsOnClipBoundsIf your transform implementation will return the same results regardless of the clip affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnGroupSpaceIf your transform implementation will return the same results regardless of the transparency group color space affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnRenderingIntentIf your transform implementation will return the same results regardless of the current rendering intent affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnTransformIf your transform implementation will return the same results regardless of how the object being transformed is positioned, rotated, or scaled, set this to false. Otherwise set this to true. Note that setting this to true has the same effect as setting dependsOnTransformScale and dependsOnTransformOffset set to true in the alternate form of the creator below.
dependsOnBrushUsageIf your transform implementation will return the same results for a brush regardless of what purpose the brush is used for, set this to false. Otherwise set this to true.
dependsOnEdgeModeIf your transform implementation will return the same results regardless of what edge mode is affecting the object being transformed, set this to false. Otherwise set this to true.
dependsOnUncoloredTilingBrushIf your transform implementation will return the same results regardless of whether or not the object is in a colored or uncolored tiling pattern brush, set this to false. Otherwise set this to true.
Returns
ICustomTransformPtr A smart pointer to the ICustomTransform object.