Mako 7.3.0 API
JawsMako::IFontProcessorTransform Class Referenceabstract

A transform for performing font subsetting and merging. More...

#include <transforms.h>

Inheritance diagram for JawsMako::IFontProcessorTransform:

Public Member Functions

virtual void setShouldSubset (bool subset)=0
 Set whether or not subsetting should be performed. The default is true.
 
virtual void setShouldMerge (bool merge)=0
 Set whether or not font merging should be performed. The default is true.
 
virtual bool shouldMerge ()=0
 Determine if font merging has been enabled. More...
 
virtual bool shouldSubset ()=0
 Determine if font subsetting has been enabled. More...
 
- 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 IFontProcessorTransformPtr create (const IJawsMakoPtr &jawsMako, const IAbortPtr &abort=IAbortPtr())
 Create the transform. More...
 

Additional Inherited Members

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

Detailed Description

A transform for performing font subsetting and merging.

    When merging fonts, this transform will see if fonts inside the object
    being transformed can be merged with fonts that the transform has
    previously seen. If so, the font will be merged. If a previously seen
    font provides all the required glyphs, that previous font will be used.
    However, if no previous font provides all the required glyphs, a new
    font will be created.

    When subsetting fonts, the transform will attempt to use previously
    seen subset fonts that support the required glyphs. If not, a new subset
    font will be created.


    However both these operations should be performed over as large a set
    of input as possible as these operations lose their effectiveness when
    operating on, for example, single pages.

    For example, if in a five page job, five potentially mergable fonts are
    used, one per page. If each font adds glyphs that were not present, then
    this transform will do a poor job. When run for each page we will be able
    to merge each font, but will then need to generate a new font each time
    due to the additional glyphs, resulting in essentially the same result
    as the input.

    For such situations, consider using the IFontProcessorDeferredTransform
    transform, which would allow merging to be performed over a set of pages.
    For the example above, it would be able to generate a single font as it
    is able to defer creation of a merged font until after it has identified
    the fonts that can be merged.

Member Function Documentation

◆ create()

static JAWSMAKO_API IFontProcessorTransformPtr JawsMako::IFontProcessorTransform::create ( const IJawsMakoPtr &  jawsMako,
const IAbortPtr &  abort = IAbortPtr() 
)
static

Create the transform.

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

◆ shouldMerge()

virtual bool JawsMako::IFontProcessorTransform::shouldMerge ( )
pure virtual

Determine if font merging has been enabled.

Returns
bool Whether or not font merging has been enabled.

◆ shouldSubset()

virtual bool JawsMako::IFontProcessorTransform::shouldSubset ( )
pure virtual

Determine if font subsetting has been enabled.

Returns
bool Whether or not font subsetting has been enabled.

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