public class IFSerializer extends AbstractXMLWritingIFDocumentHandler implements IFConstants, IFPainter, IFDocumentNavigationHandler
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
VERSION
Intermediate Format (IF) version, used to express an @version attribute
in the root element of the IF document, the initial value of which
is set to '2.0' to signify that something preceded it (but didn't
happen to be marked as such), and that this version is not necessarily
backwards compatible with the unmarked (<2.0) version.
|
handler, tFactoryEL_BORDER_RECT, EL_CLIP_RECT, EL_DOCUMENT, EL_FONT, EL_GROUP, EL_HEADER, EL_ID, EL_IMAGE, EL_LINE, EL_LOCALE, EL_PAGE, EL_PAGE_CONTENT, EL_PAGE_HEADER, EL_PAGE_SEQUENCE, EL_PAGE_TRAILER, EL_RECT, EL_STRUCTURE_TREE, EL_TEXT, EL_TRAILER, EL_VIEWPORT, MIME_TYPE, NAMESPACECDATA, XLINK_HREF, XLINK_NAMESPACE, XLINK_PREFIX, XML_NAMESPACE, XML_PREFIX, XML_SPACE, XMLNS_NAMESPACE_URI, XMLNS_PREFIX| Constructor and Description |
|---|
IFSerializer(IFContext context) |
| Modifier and Type | Method and Description |
|---|---|
void |
addResolvedAction(AbstractAction action) |
void |
clipBackground(java.awt.Rectangle rect,
BorderProps bpsBefore,
BorderProps bpsAfter,
BorderProps bpsStart,
BorderProps bpsEnd)
Restricts the current clipping region to the inner border.
|
void |
clipRect(java.awt.Rectangle rect)
Restricts the current clipping region with the given rectangle.
|
protected RenderingContext |
createRenderingContext() |
void |
drawBorderRect(java.awt.Rectangle rect,
BorderProps top,
BorderProps bottom,
BorderProps left,
BorderProps right,
java.awt.Color innerBackgroundColor)
Draws a border rectangle.
|
void |
drawImage(org.w3c.dom.Document doc,
java.awt.Rectangle rect)
Draws an image (represented by a DOM document) inside a given rectangle.
|
void |
drawImage(java.lang.String uri,
java.awt.Rectangle rect)
Draws an image identified by a URI inside a given rectangle.
|
void |
drawLine(java.awt.Point start,
java.awt.Point end,
int width,
java.awt.Color color,
RuleStyle style)
Draws a line.
|
void |
drawText(int x,
int y,
int letterSpacing,
int wordSpacing,
int[][] dp,
java.lang.String text)
Draws text.
|
void |
drawText(int x,
int y,
int letterSpacing,
int wordSpacing,
int[][] dp,
java.lang.String text,
boolean nextIsSpace) |
void |
endDocument()
Indicates the end of a document.
|
void |
endDocumentHeader()
Indicates the end of the document header.
|
void |
endDocumentTrailer()
Indicates the end of the document trailer.
|
void |
endGroup()
Ends the current group and restores the previous coordinate system (and layer).
|
void |
endPage()
Indicates the end of a page
|
void |
endPageContent()
Indicates the end of the page content.
|
void |
endPageHeader()
Indicates the end of the page header.
|
void |
endPageSequence()
Indicates the end of a page sequence.
|
void |
endPageTrailer()
Indicates the end of the page trailer.
|
void |
endViewport()
Ends the current viewport and restores the previous coordinate system.
|
void |
fillRect(java.awt.Rectangle rect,
java.awt.Paint fill)
Fills a rectangular area.
|
IFDocumentHandlerConfigurator |
getConfigurator()
Returns the configurator for this document handler, if any.
|
IFDocumentNavigationHandler |
getDocumentNavigationHandler()
Returns a document navigation handler if this feature is supported.
|
FontInfo |
getFontInfo()
Returns the font set to work with.
|
protected java.lang.String |
getMainNamespace()
Returns the main namespace used for generated XML content.
|
java.lang.String |
getMimeType()
Returns the MIME type of the output format that is generated by this implementation.
|
IFDocumentHandler |
getMimickedDocumentHandler()
Returns the document handler that is being mimicked by this serializer.
|
int |
getPageIndex() |
StructureTreeEventHandler |
getStructureTreeEventHandler() |
void |
handleExtensionObject(java.lang.Object extension)
Handles an extension object.
|
boolean |
isBackgroundRequired(BorderProps bpsTop,
BorderProps bpsBottom,
BorderProps bpsLeft,
BorderProps bpsRight)
TODO Painter-specific rounded borders logic required background drawing to be
made optional.
|
void |
mimicDocumentHandler(IFDocumentHandler targetHandler)
Tells this serializer to mimic the given document handler (mostly applies to the font set
that is used during layout).
|
void |
renderBookmarkTree(BookmarkTree tree)
Render the bookmark tree.
|
void |
renderLink(Link link) |
void |
renderNamedDestination(NamedDestination destination)
Renders a named destination.
|
void |
setDefaultFontInfo(FontInfo fontInfo)
Sets the default font set (with no custom configuration).
|
void |
setDocumentLocale(java.util.Locale locale) |
void |
setFont(java.lang.String family,
java.lang.String style,
java.lang.Integer weight,
java.lang.String variant,
java.lang.Integer size,
java.awt.Color color)
Updates the current font.
|
void |
setFontInfo(FontInfo fontInfo)
Sets the font set to work with.
|
void |
startDocument()
Indicates the start of a document.
|
void |
startDocumentHeader()
Indicates the start of the document header.
|
void |
startDocumentTrailer()
Indicates the start of the document trailer.
|
void |
startGroup(java.awt.geom.AffineTransform[] transforms,
java.lang.String layer)
Starts a new group of graphical elements.
|
void |
startGroup(java.awt.geom.AffineTransform transform,
java.lang.String layer)
Starts a new group of graphical elements.
|
void |
startPage(int index,
java.lang.String name,
java.lang.String pageMasterName,
java.awt.Dimension size)
Indicates the start of a new page.
|
IFPainter |
startPageContent()
Indicates the start of the page content.
|
void |
startPageHeader()
Indicates the start of the page header.
|
void |
startPageSequence(java.lang.String id)
Indicates the start of a new page sequence.
|
void |
startPageTrailer()
Indicates the start of the page trailer.
|
void |
startViewport(java.awt.geom.AffineTransform[] transforms,
java.awt.Dimension size,
java.awt.Rectangle clipRect)
Starts a new viewport, establishing a new coordinate system.
|
void |
startViewport(java.awt.geom.AffineTransform transform,
java.awt.Dimension size,
java.awt.Rectangle clipRect)
Starts a new viewport, establishing a new coordinate system.
|
boolean |
supportsPagesOutOfOrder()
Indicates whether the painter supports to handle the pages in mixed order rather than
ascending order.
|
createContentHandler, setResultgetContext, getUserAgentpublic static final java.lang.String VERSION
public IFSerializer(IFContext context)
protected java.lang.String getMainNamespace()
getMainNamespace in class AbstractXMLWritingIFDocumentHandlerpublic boolean supportsPagesOutOfOrder()
supportsPagesOutOfOrder in interface IFDocumentHandlerpublic java.lang.String getMimeType()
getMimeType in interface IFDocumentHandlerpublic IFDocumentHandlerConfigurator getConfigurator()
getConfigurator in interface IFDocumentHandlerpublic IFDocumentNavigationHandler getDocumentNavigationHandler()
getDocumentNavigationHandler in interface IFDocumentHandlergetDocumentNavigationHandler in class AbstractIFDocumentHandlerpublic void mimicDocumentHandler(IFDocumentHandler targetHandler)
targetHandler - the document handler to mimicpublic IFDocumentHandler getMimickedDocumentHandler()
public FontInfo getFontInfo()
getFontInfo in interface IFDocumentHandlerpublic void setFontInfo(FontInfo fontInfo)
setFontInfo in interface IFDocumentHandlerfontInfo - the font info objectpublic void setDefaultFontInfo(FontInfo fontInfo)
setDefaultFontInfo in interface IFDocumentHandlerfontInfo - the font info object to populatepublic StructureTreeEventHandler getStructureTreeEventHandler()
AbstractIFDocumentHandlergetStructureTreeEventHandler in interface IFDocumentHandlergetStructureTreeEventHandler in class AbstractIFDocumentHandlerpublic void startDocument()
throws IFException
startDocument in interface IFDocumentHandlerstartDocument in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void setDocumentLocale(java.util.Locale locale)
AbstractIFDocumentHandlersetDocumentLocale in interface IFDocumentHandlersetDocumentLocale in class AbstractIFDocumentHandlerlocale - Locale of the document.public void startDocumentHeader()
throws IFException
IFDocumentHandler.startDocument() method. Extensions sent to this painter between
IFDocumentHandler.startDocumentHeader() and IFDocumentHandler.endDocumentHeader() apply to the document as
a whole (like document metadata).startDocumentHeader in interface IFDocumentHandlerstartDocumentHeader in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void endDocumentHeader()
throws IFException
endDocumentHeader in interface IFDocumentHandlerendDocumentHeader in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void startDocumentTrailer()
throws IFException
IFDocumentHandler.startDocumentTrailer() and IFDocumentHandler.endDocumentTrailer() apply to the document as
a whole and is used for document-level content that is only known after all pages have
been rendered (like named destinations or the bookmark tree).startDocumentTrailer in interface IFDocumentHandlerstartDocumentTrailer in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void endDocumentTrailer()
throws IFException
IFDocumentHandler.endDocument() method.endDocumentTrailer in interface IFDocumentHandlerendDocumentTrailer in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void endDocument()
throws IFException
endDocument in interface IFDocumentHandlerIFException - if an error occurs while handling this eventpublic void startPageSequence(java.lang.String id)
throws IFException
startPageSequence in interface IFDocumentHandlerid - the page sequence's identifier (or null if none is available)IFException - if an error occurs while handling this eventpublic void endPageSequence()
throws IFException
endPageSequence in interface IFDocumentHandlerIFException - if an error occurs while handling this eventpublic void startPage(int index,
java.lang.String name,
java.lang.String pageMasterName,
java.awt.Dimension size)
throws IFException
startPage in interface IFDocumentHandlerindex - the index of the page (0-based)name - the page name (usually the formatted page number)pageMasterName - the name of the simple-page-master that generated this pagesize - the size of the page (equivalent to the MediaBox in PDF)IFException - if an error occurs while handling this eventpublic void startPageHeader()
throws IFException
startPageHeader in interface IFDocumentHandlerstartPageHeader in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void endPageHeader()
throws IFException
endPageHeader in interface IFDocumentHandlerendPageHeader in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic IFPainter startPageContent() throws IFException
IFPainter interface
which is used to paint the page contents.startPageContent in interface IFDocumentHandlerIFException - if an error occurs while handling this eventpublic void endPageContent()
throws IFException
IFPainter returned by the
respective IFDocumentHandler.startPageContent() method are illegal.endPageContent in interface IFDocumentHandlerIFException - if an error occurs while handling this eventpublic void startPageTrailer()
throws IFException
startPageTrailer in interface IFDocumentHandlerstartPageTrailer in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void endPageTrailer()
throws IFException
endPageTrailer in interface IFDocumentHandlerendPageTrailer in class AbstractIFDocumentHandlerIFException - if an error occurs while handling this eventpublic void endPage()
throws IFException
endPage in interface IFDocumentHandlerIFException - if an error occurs while handling this eventpublic void startViewport(java.awt.geom.AffineTransform transform,
java.awt.Dimension size,
java.awt.Rectangle clipRect)
throws IFException
startViewport in interface IFPaintertransform - the transformation matrix establishing the new coordinate systemsize - the size of the viewportclipRect - the clipping rectangle (may be null)IFException - if an error occurs while handling this elementpublic void startViewport(java.awt.geom.AffineTransform[] transforms,
java.awt.Dimension size,
java.awt.Rectangle clipRect)
throws IFException
startViewport in interface IFPaintertransforms - a series of transformation matrices establishing the new coordinate systemsize - the size of the viewportclipRect - the clipping rectangle (may be null)IFException - if an error occurs while handling this elementpublic void endViewport()
throws IFException
endViewport in interface IFPainterIFException - if an error occurs while handling this elementpublic void startGroup(java.awt.geom.AffineTransform[] transforms,
java.lang.String layer)
throws IFException
startGroup in interface IFPaintertransforms - a series of transformation matrices establishing the new coordinate systemlayer - an optional layer label (or null if none)IFException - if an error occurs while handling this elementpublic void startGroup(java.awt.geom.AffineTransform transform,
java.lang.String layer)
throws IFException
startGroup in interface IFPaintertransform - the transformation matrix establishing the new coordinate systemlayer - an optional layer label (or null if none)IFException - if an error occurs while handling this elementpublic void endGroup()
throws IFException
endGroup in interface IFPainterIFException - if an error occurs while handling this elementpublic void drawImage(java.lang.String uri,
java.awt.Rectangle rect)
throws IFException
drawImage in interface IFPainteruri - the image's URIrect - the rectangle in which the image shall be paintedIFException - if an error occurs while handling this eventpublic void drawImage(org.w3c.dom.Document doc,
java.awt.Rectangle rect)
throws IFException
drawImage in interface IFPainterdoc - the DOM document containing the foreign objectrect - the rectangle in which the image shall be paintedIFException - if an error occurs while handling this eventpublic void clipRect(java.awt.Rectangle rect)
throws IFException
clipRect in interface IFPainterrect - the rectangle's coordinates and extentIFException - if an error occurs while handling this eventpublic void clipBackground(java.awt.Rectangle rect,
BorderProps bpsBefore,
BorderProps bpsAfter,
BorderProps bpsStart,
BorderProps bpsEnd)
throws IFException
clipBackground in interface IFPainterrect - the rectangle's coordinates and extentbpsBefore - the border segment on the before-side (top)bpsAfter - the border segment on the after-side (bottom)bpsStart - the border segment on the start-side (left)bpsEnd - the border segment on the end-side (right)IFException - if an error occurs while handling this eventpublic void fillRect(java.awt.Rectangle rect,
java.awt.Paint fill)
throws IFException
fillRect in interface IFPainterrect - the rectangle's coordinates and extentfill - the fill paintIFException - if an error occurs while handling this eventpublic void drawBorderRect(java.awt.Rectangle rect,
BorderProps top,
BorderProps bottom,
BorderProps left,
BorderProps right,
java.awt.Color innerBackgroundColor)
throws IFException
BorderProps
instances.drawBorderRect in interface IFPainterrect - the rectangle's coordinates and extenttop - the border segment on the top edgebottom - the border segment on the bottom edgeleft - the border segment on the left edgeright - the border segment on the right edgeinnerBackgroundColor - the color of the inner backgroundIFException - if an error occurs while handling this eventpublic void drawLine(java.awt.Point start,
java.awt.Point end,
int width,
java.awt.Color color,
RuleStyle style)
throws IFException
drawLine in interface IFPainterstart - the start point of the lineend - the end point of the linewidth - the line widthcolor - the line colorstyle - the line style (using the Constants.EN_* constants for the rule-style property)IFException - if an error occurs while handling this eventpublic void drawText(int x,
int y,
int letterSpacing,
int wordSpacing,
int[][] dp,
java.lang.String text)
throws IFException
drawText in interface IFPainterx - X-coordinate of the starting point of the texty - Y-coordinate of the starting point of the textletterSpacing - additional spacing between characters (may be 0)wordSpacing - additional spacing between words (may be 0)dp - an array of 4-tuples, expressing [X,Y] placment
adjustments and [X,Y] advancement adjustments, in that order (may be null); if
not null, then adjustments.length must be the same as text.length()text - the textIFException - if an error occurs while handling this eventpublic void drawText(int x,
int y,
int letterSpacing,
int wordSpacing,
int[][] dp,
java.lang.String text,
boolean nextIsSpace)
throws IFException
drawText in interface IFPainterIFExceptionpublic void setFont(java.lang.String family,
java.lang.String style,
java.lang.Integer weight,
java.lang.String variant,
java.lang.Integer size,
java.awt.Color color)
throws IFException
setFont in interface IFPainterfamily - the font family (or null if there's no change)style - the font style (or null if there's no change)weight - the font weight (or null if there's no change)variant - the font variant (or null if there's no change)size - the font size (or null if there's no change)color - the text color (or null if there's no change)IFException - if an error occurs while handling this eventpublic void handleExtensionObject(java.lang.Object extension)
throws IFException
handleExtensionObject in interface IFDocumentHandlerextension - the extension objectIFException - if an error occurs while handling this eventprotected RenderingContext createRenderingContext() throws java.lang.IllegalStateException
java.lang.IllegalStateException - unless overriddenpublic void renderNamedDestination(NamedDestination destination) throws IFException
renderNamedDestination in interface IFDocumentNavigationHandlerdestination - the named destinationIFException - if an error occurs while handling this eventpublic void renderBookmarkTree(BookmarkTree tree) throws IFException
renderBookmarkTree in interface IFDocumentNavigationHandlertree - the bookmark treeIFException - if an error occurs while handling this eventpublic void renderLink(Link link) throws IFException
renderLink in interface IFDocumentNavigationHandlerlink - a linkIFException - of not caughtpublic void addResolvedAction(AbstractAction action) throws IFException
addResolvedAction in interface IFDocumentNavigationHandleraction - an actionIFException - of not caughtpublic int getPageIndex()
getPageIndex in interface IFDocumentNavigationHandlerpublic boolean isBackgroundRequired(BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight)
isBackgroundRequired in interface IFPainterbpsTop - the before borderbpsBottom - the after borderbpsLeft - the start borderbpsRight - the end borderCopyright 1999-2022 The Apache Software Foundation. All Rights Reserved.