A renderer that uses the Jaws RIP to create images from arbitrary DOM. More...
#include <jawsmako.h>
Classes | |
class | CColorSpotHalftone |
Description of spot halftones, using Jaws's default spot function. Used for color halftoned rendering. Analogous to a PostScript Type 2 Halftone; please refer to section 7.4.6 of the PostScript language reference manual. When rendering to RGB, there must be three angles. (Red, Green and Blue respectively). For CMYK output, there must be four (Cyan, Magenta, Yellow and Black respectively). More... | |
class | CColorThresholdArrayHalftone |
As per CThresholdArrayHalftone, but for use with color rendering. There is a single width and height, but a threshold array for each color being rendering. One threshold array must be specified for each color being rendered. When rendering to RGB, there must be three thresholds (Red, Green and Blue respectively). For CMYK output, there must be four thresholds (Cyan, Magenta, Yellow and Black respectively). More... | |
class | CEDSHalftone |
A halftone representing an error diffusion screen. Allows the production of results containing a variable number of gray levels per channel using a range of error diffusion screens. More... | |
class | CFrameBufferInfo |
Description of a frame buffer for use with renderSeparationsToFrameBuffers. More... | |
class | CSpotHalftone |
Description of a simple spot halftone, at 45 degrees, using Jaws's default spot function. Used for monochrome rendering. More... | |
class | CThresholdArrayHalftone |
Description of a Type 3 8-bit threshold array halftone for use with monochrome rendering. Please refer to section 7.4.5 of the PostScript language reference manual, 3rd edition. More... | |
class | CThresholdHalftone |
A halftone representing a simple threshold. Used for monochrome rendering. More... | |
Public Member Functions | |
virtual IDOMImagePtr | render (const IDOMNodePtr &node, uint32 dpi=72, uint8 depth=8, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), bool maskToInterestingNodes=false, const CSpotColorNames &retainedSpotColors=CSpotColorNames(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0 |
Render a node to an image. | |
virtual CEDLVector< IDOMImagePtr > | renderSeparations (const IDOMNodePtr &node, const uint8 depth=8, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), uint8 antiAliased=0, const FRect &bounds=FRect(), uint32 destWidth=0, uint32 destHeight=0, const CSpotColorNames &retainedSpotColors=CSpotColorNames(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView, const CU8StringVect &processColorNames=CU8StringVect(), bool alphaGeneration=false, uint64 bandMemorySize=0, const CSpotColorNames &ignoreSpotColors=CSpotColorNames())=0 |
Render a node to a set of separated images, with optional anti-aliasing. For ease of use, the output is scaled to fit the destination size, described in pixels. | |
virtual void | renderSeparationsToFrameBuffers (const IDOMNodePtr &node, uint8 depth, bool hostEndian, uint32 destWidth, uint32 destHeight, const IDOMColorSpacePtr &colorSpace, CFrameBufferInfoVect &frameBuffers, uint8 antiAliased=0, const FRect &bounds=FRect(), const CSpotColorNames &retainedSpotColors=CSpotColorNames(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView, const CU8StringVect &processColorNames=CU8StringVect(), bool alphaGeneration=false, uint64 bandMemorySize=0, const CSpotColorNames &ignoreSpotColors=CSpotColorNames())=0 |
As per renderSeparations(), but targeting a set of frame buffers, described by a vector CFrameBufferInfoVect. | |
virtual void | renderToFrameBuffer (const IDOMNodePtr &node, void *buffer, uint32 stride, uint32 destWidth, uint32 destHeight, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0 |
Render a node to a supplied frame buffer, at 8 bits per component. | |
virtual void | renderToFrameBufferPadAndReverse (const IDOMNodePtr &node, void *buffer, uint32 stride, uint32 pixelStride, bool reverseComponents, uint32 destWidth, uint32 destHeight, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0 |
As per renderToFrameBuffer, but allowing for pixel byte order and padding control. | |
virtual IDOMImagePtr | renderAntiAliased (const IDOMNodePtr &node, uint32 dpi=72, uint8 quality=3, const FRect &bounds=FRect())=0 |
Render a node to an antialiased, DeviceRGB image suitable for display, using supersampling. | |
virtual CEDLVector< IDOMImagePtr > | renderScreened (const IDOMNodePtr &node, uint32 dpi, const IHalftone *halftone, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=true, const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0 |
Render a node to a screened result, in monochrome or CMYK returning one image per colorant. | |
IDOMImagePtr | renderMonochrome (const IDOMNodePtr &node, uint32 dpi=72, const IHalftone *halftone=NULL, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=false) |
Convenience - Render a node to a 1-bit monochrome image. | |
virtual void | renderScreenedToFrameBuffers (const IDOMNodePtr &node, void **buffers, uint32 *strides, uint32 destWidth, uint32 destHeight, const IHalftone *halftone, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=true, const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0 |
Render a node to a 1-bit monochrome frame buffer, a series of three 1-bit frame buffers for RGB, or four 1-bit frame buffers representing CMYK. | |
void | renderMonochromeToFrameBuffer (const IDOMNodePtr &node, void *buffer, uint32 stride, uint32 destWidth, uint32 destHeight, const IHalftone *halftone, const IDOMColorSpacePtr colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=false, const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView) |
Convenience Render a node to a 1-bit monochrome frame buffer. | |
virtual void | setEnableTrueTypeNotDef (bool enable)=0 |
Enable the use of a True Type font's /.notdef glyph in the output. | |
virtual void | setEnableRasterCompression (bool enable)=0 |
Enable the use of compression for compressed output. | |
virtual void | setBlackPreservation (bool preserveForText, bool preserveForOther)=0 |
Enable/control 100% black preservation. | |
virtual void | setIgnoreMatchingDeviceIntercept (bool ignoreDeviceIntercept)=0 |
Allow intercept color spaces for a matching Device space to be ignored. | |
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. | |
virtual int32 | getRefCount () const =0 |
Retrieve the current reference count of the actual object pointed to. | |
Static Public Member Functions | |
static JAWSMAKO_API IJawsRendererPtr | create (const IJawsMakoPtr &jawsMako, const IProgressMonitorPtr &progressMonitor=IProgressMonitorPtr()) |
Create a Jaws renderer instance. | |
Additional Inherited Members | |
Protected Member Functions inherited from IRCObject | |
virtual | ~IRCObject () |
Virtual destructor. | |
A renderer that uses the Jaws RIP to create images from arbitrary DOM.
|
static |
Create a Jaws renderer instance.
jawsMako | The JawsMako instance. |
progressMonitor | A smart pointer to an IProgressMonitor object or NULL of no object was passed. |
|
pure virtual |
Render a node to an image.
node | The node to render. |
dpi | The desired resolution. |
depth | The desired depth - either 8 or 16 bits per component. |
colorSpace | The desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
|
bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
maskToInterestingNodes | If true, a mask channel will be created to render only nodes that are marked as interesting. All other nodes will be masked out. Nodes may be marked as interesting by setting the IDOMNodeFlags::eNodeInteresting flag on the nodes to render. |
retainedSpotColors | Used only if the color space is a three or four channel type (ie some form of RGB or CMYK color space). If provided, the renderer will provide channels in the output image for these spot colors and generate a DeviceN color space for the image as a whole. Note that the generated DeviceN color space is a best guess and is suitable for separated output only. |
optionalContent | The optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered. |
optionalContentUsage | The desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used. |
|
pure virtual |
Render a node to an antialiased, DeviceRGB image suitable for display, using supersampling.
node | The node to render. |
dpi | The desired resolution. |
quality | The desired anti-aliasing quality, from 0 (no antialiasing) to 15 (maximum). |
|
inline |
Convenience - Render a node to a 1-bit monochrome image.
node | The node to render. |
dpi | The desired resolution. |
halftone | The Halftone to use. If NULL, a 60lpi spot function will be used. If provided, this must be either a CSpotHalftone, CThresholdArrayHalftone, or CThresholdHalftone. |
colorSpace | The desired color space. If NULL, DeviceGray will be used. If provided, only DeviceGray sGray, or a single component ICC space may be used. |
bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
useCC | When this parameter is true then color correction is applied during rendering. |
|
inline |
Convenience Render a node to a 1-bit monochrome frame buffer.
[in] | node | The node to render. |
[in] | buffer | The target frame buffer. |
[in] | stride | The distance in bytes between the start of one scanline in the buffer to the next scanline in y. |
[in] | halftone | The Halftone to use. Must not be NULL. Spot function (CSpotHalftone) and threshold (CThresholdHalftone) supported. (Adjust the frequency of spot function so that it works in 48 dpi. For example, to achieve 60 lpi at 600dpi, set a frequency of 60 * 48 / 600 = 4.8 lpi). |
[in] | colorSpace | The desired color space. If NULL, DeviceGray will be used. If provided, only DeviceGray or sGray may be used. |
[in] | bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
[in] | useCC | When this parameter is true then color correction is applied during rendering. |
[in] | optionalContentUsage | The desired usage for optional content. Ignored if optionalContent is NULL. eOCEUnknown must not be used. |
|
pure virtual |
Render a node to a screened result, in monochrome or CMYK returning one image per colorant.
[in] | node | The node to render. |
[in] | dpi | The desired resolution. |
[in] | halftone | to use. Must be provided. When rendering to a CMYK or RGB result, this must be either a CColorSpotHalftone or a CColorThresholdArrayHalftone. When rendering to a monochrome result this must be either a CSpotHalftone, CThresholdArrayHalftone, or CThresholdHalftone. |
[in] | colorSpace | The desired color space. May be one of:
|
[in] | bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
[in] | useCC | When this parameter is true then color correction is applied during rendering. |
[in] | optionalContentUsage | The desired usage for optional content. Ignored if optionalContent is NULL. eOCEUnknown must not be used. |
|
pure virtual |
Render a node to a 1-bit monochrome frame buffer, a series of three 1-bit frame buffers for RGB, or four 1-bit frame buffers representing CMYK.
[in] | node | The node to render. |
[in] | buffers | The target frame buffers. Provide one for monochrome, or four for CMYK. |
[in] | strides | The distance in bytes between the start of one scanline in each buffer to the next scanline in y, one per frame buffer. |
[in] | halftone | to use. Must be provided. When rendering to a CMYK or RGB result, this must be either a CColorSpotHalftone or a CColorThresholdArrayHalftone. When rendering to a monochrome result this must be either a CSpotHalftone, CThresholdArrayHalftone, or CThresholdHalftone. For spot functions, adjust the frequency to assume 48 dpi. For example, to achieve 60 lpi at 600dpi, set a frequency of 60 * 48 / 600 = 4.8 lpi. |
[in] | colorSpace | The desired color space. May be one of:
|
[in] | bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
[in] | useCC | When this parameter is true then color correction is applied during rendering. |
[in] | optionalContentUsage | The desired usage for optional content. Ignored if optionalContent is NULL. eOCEUnknown must not be used. |
|
pure virtual |
Render a node to a set of separated images, with optional anti-aliasing. For ease of use, the output is scaled to fit the destination size, described in pixels.
node | The node to render. |
depth | The desired depth - either 8 or 16 bits per component. |
colorSpace | The desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
|
antiAliased | Anti-aliasing factor. If zero, anti-aliasing is not performed. |
bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
destWidth | The desired output width, in pixels. If zero, the input size is used. |
destHeight | The desired output height, in pixels. If zero, the input size is used. |
retainedSpotColors | Used only if the color space is a three or four channel type (ie some form of RGB or CMYK color space). If provided, the renderer will produce separate images for these colorants. A maximum of 4096 total separations are supported (process + spot + alpha). |
optionalContent | The optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered. |
optionalContentUsage | The desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used. |
processColorNames | Required only if a multi-channel target profile target space is provided, ignored otherwise. The names must be specified in the order that they are generated by the profile. For example, a CMYKOK profile will normally require this to be set to "Cyan", "Magenta", "Yellow", "Black", "Orange", "Green". |
alphaGeneration | Used only if the color space is Gray, RGB or CMYK based (including ICC Gray, RGB or CMYK). |
bandMemorySize | Explicitly set the amount of memory that should be used for band buffers in the renderer. Useful for some situations where either very large pages or very large numbers of separations. This parameter is ignored on 32-bit platforms. |
ignoreSpotColors | If provided, the renderer will ignore these colorants. |
|
pure virtual |
As per renderSeparations(), but targeting a set of frame buffers, described by a vector CFrameBufferInfoVect.
node | The node to render. |
depth | The desired depth - either 8 or 16 bits per component. |
hostEndian | Whether or not to use host-endianness for 16 bit components. If false, the PDF format is used (Big endian). If true, the host endianness (typically little endian) is used. Ignored for 8bpc. |
destWidth | The desired output width, in pixels. |
destHeight | The desired output height, in pixels. |
colorSpace | The desired color space. If provided, this must be an instance of one of the following colorspace types:
|
frameBuffers | A vector of frame buffers where the results will be written. There must be a CFrameBufferInfo for every channel that will be generated (including alpha if alphaGeneration is true). The row and pixel strides in the CFrameBufferInfo may be negative. The overlapping of buffers is allowed, and therefore it is possible to create a series of CFrameBufferInfo that result in interleaved output to a single block of target memory. Padding and reversal is also possible. |
antiAliased | Anti-aliasing factor. If zero, anti-aliasing is not performed. |
bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
retainedSpotColors | Used only if the color space is a three or four channel type (ie some form of RGB or CMYK color space). If provided, the renderer will produce separate images for these colorants. A maximum of 4096 total separations are supported (process + spot + alpha). |
optionalContent | The optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered. |
optionalContentUsage | The desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used. |
processColorNames | Required only if a multi-channel target profile target space is provided, ignored otherwise. The names must be specified in the order that they are generated by the profile. For example, a CMYKOK profile will normally require this to be set to "Cyan", "Magenta", "Yellow", "Black", "Orange", "Green". |
alphaGeneration | Used only if the color space is Gray, RGB or CMYK based (including ICC Gray, RGB or CMYK). |
bandMemorySize | Explicitly set the amount of memory that should be used for band buffers in the renderer. Useful for some situations where either very large pages or very large numbers of separations. This parameter is ignored on 32-bit platforms. |
ignoreSpotColors | If provided, the renderer will ignore these colorants. |
|
pure virtual |
Render a node to a supplied frame buffer, at 8 bits per component.
node | The node to render. |
buffer | The target frame buffer. |
destWidth | The desired output width in pixels. The input content will be scaled to fit this size. |
destHeight | The desired output height in pixels. The input content will be scaled to fit this size. |
stride | The distance in bytes between the start of one scanline in the buffer to the next scanline in y. |
colorSpace | The desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
|
bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
optionalContent | The optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered. |
optionalContentUsage | The desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used. |
|
pure virtual |
As per renderToFrameBuffer, but allowing for pixel byte order and padding control.
Amongst other things this allows the use of XRGB, RGBX, XBGR or BGRX frame buffers. For example, to render to:
Note that any pad bytes will not be altered during rendering.
node | The node to render. |
buffer | The target frame buffer. |
destWidth | The desired output width in pixels. The input content will be scaled to fit this size. |
destHeight | The desired output height in pixels. The input content will be scaled to fit this size. |
stride | The distance in bytes between the start of one scanline in the buffer to the next scanline in y. |
pixelStride | The distance in bytes between one pixel in x and the next. Must be at least as large as the number of components in the color space. |
reverseComponents | If true, the order of samples within a pixel will be reversed. For example, if you are rendering RGB to a BGR frame buffer, set this to true. |
colorSpace | The desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
|
bounds | The desired rendering area. If the rect is empty an appropriate size is chosen based on the input node. |
optionalContent | The optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered. |
optionalContentUsage | The desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used. |
|
pure virtual |
Enable/control 100% black preservation.
100% black preservation preserves a 100% black output when rendering 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 renderer creation.
preserveForText | Whether or not to apply black preservation for text. |
preserveForOther | Whether or not to apply for non-text objects. |
|
pure virtual |
Enable the use of compression for compressed output.
If true, a fast compression is applied to raster data produced by the renderer. If false, the image raster data is stored uncompressed. In general, the compression is very fast and does not introduce a large CPU cost but reduces the storage requirements. However, it does mean that IImageFrame::readScanline() will be slower than if the data was uncompressed. The default is true.
|
pure virtual |
Enable the use of a True Type font's /.notdef glyph in the output.
If true, a character that does not have a glyph or that has been linked to the /.notdef glyph will be rendered. If false, a character that does not have a glyph or that has been linked to the /.notdef glyph will be ignored. The default is true.
|
pure virtual |
Allow intercept color spaces for a matching Device space to be ignored.
In the renderer, when a Device color space (DeviceRGB, DeviceCMYK, or DeviceGray) is seen, it is interpreted according to the intercept color space set in the IColorManager instance via the setDevice*Intercept() routines. This may not always be desirable. Consider the case where a CMYK ICC profile is used as the the output color space for rendering. If the DeviceCMYK intercept does not match that profile, then any DeviceCMYK content would be color converted from the intercept color space to the output profile. This behaviour is contrary to what would ordinarily be seen in a standalone RIP. There, it is expected that if the output is a CMYK profile, then any DeviceCMYK content would be passed through without conversion. The same result can be achieved in Mako by using IColorManager::setDeviceCMYKIntercept() to apply the output ICC profile as the DeviceCMYK intercept. However, this is a global setting, and it may not always be possible to do so. Here, if ignoreDeviceIntercept is set, then the renderer will do the following: - If the output is a CMYK color space, then any DeviceCMYK content will be interpreted as matching that space. - If the output is an RGB color space, then any DeviceRGB content will be interpreted as matching that space. - If the output is a Gray color space, then any DeviceGray content will be interpreted as matching that space. The default is false.