public class IFSerializer extends AbstractXMLWritingIFDocumentHandler implements IFConstants, IFPainter, IFDocumentNavigationHandler
Modifier and Type | Field and Description |
---|---|
static 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, tFactory
EL_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, NAMESPACE
CDATA, 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(Rectangle rect,
BorderProps bpsBefore,
BorderProps bpsAfter,
BorderProps bpsStart,
BorderProps bpsEnd)
Restricts the current clipping region to the inner border.
|
void |
clipRect(Rectangle rect)
Restricts the current clipping region with the given rectangle.
|
protected RenderingContext |
createRenderingContext() |
void |
drawBorderRect(Rectangle rect,
BorderProps top,
BorderProps bottom,
BorderProps left,
BorderProps right,
Color innerBackgroundColor)
Draws a border rectangle.
|
void |
drawImage(Document doc,
Rectangle rect)
Draws an image (represented by a DOM document) inside a given rectangle.
|
void |
drawImage(String uri,
Rectangle rect)
Draws an image identified by a URI inside a given rectangle.
|
void |
drawLine(Point start,
Point end,
int width,
Color color,
RuleStyle style)
Draws a line.
|
void |
drawText(int x,
int y,
int letterSpacing,
int wordSpacing,
int[][] dp,
String text)
Draws text.
|
void |
drawText(int x,
int y,
int letterSpacing,
int wordSpacing,
int[][] dp,
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(Rectangle rect,
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 String |
getMainNamespace()
Returns the main namespace used for generated XML content.
|
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(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(Locale locale) |
void |
setFont(String family,
String style,
Integer weight,
String variant,
Integer size,
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(AffineTransform[] transforms,
String layer)
Starts a new group of graphical elements.
|
void |
startGroup(AffineTransform transform,
String layer)
Starts a new group of graphical elements.
|
void |
startPage(int index,
String name,
String pageMasterName,
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(String id)
Indicates the start of a new page sequence.
|
void |
startPageTrailer()
Indicates the start of the page trailer.
|
void |
startViewport(AffineTransform[] transforms,
Dimension size,
Rectangle clipRect)
Starts a new viewport, establishing a new coordinate system.
|
void |
startViewport(AffineTransform transform,
Dimension size,
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, setResult
getContext, getUserAgent
public static final String VERSION
public IFSerializer(IFContext context)
protected String getMainNamespace()
getMainNamespace
in class AbstractXMLWritingIFDocumentHandler
public boolean supportsPagesOutOfOrder()
supportsPagesOutOfOrder
in interface IFDocumentHandler
public String getMimeType()
getMimeType
in interface IFDocumentHandler
public IFDocumentHandlerConfigurator getConfigurator()
getConfigurator
in interface IFDocumentHandler
public IFDocumentNavigationHandler getDocumentNavigationHandler()
getDocumentNavigationHandler
in interface IFDocumentHandler
getDocumentNavigationHandler
in class AbstractIFDocumentHandler
public void mimicDocumentHandler(IFDocumentHandler targetHandler)
targetHandler
- the document handler to mimicpublic IFDocumentHandler getMimickedDocumentHandler()
public FontInfo getFontInfo()
getFontInfo
in interface IFDocumentHandler
public void setFontInfo(FontInfo fontInfo)
setFontInfo
in interface IFDocumentHandler
fontInfo
- the font info objectpublic void setDefaultFontInfo(FontInfo fontInfo)
setDefaultFontInfo
in interface IFDocumentHandler
fontInfo
- the font info object to populatepublic StructureTreeEventHandler getStructureTreeEventHandler()
AbstractIFDocumentHandler
getStructureTreeEventHandler
in interface IFDocumentHandler
getStructureTreeEventHandler
in class AbstractIFDocumentHandler
public void startDocument() throws IFException
startDocument
in interface IFDocumentHandler
startDocument
in class AbstractIFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void setDocumentLocale(Locale locale)
AbstractIFDocumentHandler
setDocumentLocale
in interface IFDocumentHandler
setDocumentLocale
in class AbstractIFDocumentHandler
locale
- 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 IFDocumentHandler
startDocumentHeader
in class AbstractIFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void endDocumentHeader() throws IFException
endDocumentHeader
in interface IFDocumentHandler
endDocumentHeader
in class AbstractIFDocumentHandler
IFException
- 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 IFDocumentHandler
startDocumentTrailer
in class AbstractIFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void endDocumentTrailer() throws IFException
IFDocumentHandler.endDocument()
method.endDocumentTrailer
in interface IFDocumentHandler
endDocumentTrailer
in class AbstractIFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void endDocument() throws IFException
endDocument
in interface IFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void startPageSequence(String id) throws IFException
startPageSequence
in interface IFDocumentHandler
id
- 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 IFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void startPage(int index, String name, String pageMasterName, Dimension size) throws IFException
startPage
in interface IFDocumentHandler
index
- 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 IFDocumentHandler
startPageHeader
in class AbstractIFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void endPageHeader() throws IFException
endPageHeader
in interface IFDocumentHandler
endPageHeader
in class AbstractIFDocumentHandler
IFException
- 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 IFDocumentHandler
IFException
- 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 IFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void startPageTrailer() throws IFException
startPageTrailer
in interface IFDocumentHandler
startPageTrailer
in class AbstractIFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void endPageTrailer() throws IFException
endPageTrailer
in interface IFDocumentHandler
endPageTrailer
in class AbstractIFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void endPage() throws IFException
endPage
in interface IFDocumentHandler
IFException
- if an error occurs while handling this eventpublic void startViewport(AffineTransform transform, Dimension size, Rectangle clipRect) throws IFException
startViewport
in interface IFPainter
transform
- 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(AffineTransform[] transforms, Dimension size, Rectangle clipRect) throws IFException
startViewport
in interface IFPainter
transforms
- 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 IFPainter
IFException
- if an error occurs while handling this elementpublic void startGroup(AffineTransform[] transforms, String layer) throws IFException
startGroup
in interface IFPainter
transforms
- 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(AffineTransform transform, String layer) throws IFException
startGroup
in interface IFPainter
transform
- 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 IFPainter
IFException
- if an error occurs while handling this elementpublic void drawImage(String uri, Rectangle rect) throws IFException
drawImage
in interface IFPainter
uri
- the image's URIrect
- the rectangle in which the image shall be paintedIFException
- if an error occurs while handling this eventpublic void drawImage(Document doc, Rectangle rect) throws IFException
drawImage
in interface IFPainter
doc
- 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(Rectangle rect) throws IFException
clipRect
in interface IFPainter
rect
- the rectangle's coordinates and extentIFException
- if an error occurs while handling this eventpublic void clipBackground(Rectangle rect, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd) throws IFException
clipBackground
in interface IFPainter
rect
- 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(Rectangle rect, Paint fill) throws IFException
fillRect
in interface IFPainter
rect
- the rectangle's coordinates and extentfill
- the fill paintIFException
- if an error occurs while handling this eventpublic void drawBorderRect(Rectangle rect, BorderProps top, BorderProps bottom, BorderProps left, BorderProps right, Color innerBackgroundColor) throws IFException
BorderProps
instances.drawBorderRect
in interface IFPainter
rect
- 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(Point start, Point end, int width, Color color, RuleStyle style) throws IFException
drawLine
in interface IFPainter
start
- 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, String text) throws IFException
drawText
in interface IFPainter
x
- 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, String text, boolean nextIsSpace) throws IFException
drawText
in interface IFPainter
IFException
public void setFont(String family, String style, Integer weight, String variant, Integer size, Color color) throws IFException
setFont
in interface IFPainter
family
- 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(Object extension) throws IFException
handleExtensionObject
in interface IFDocumentHandler
extension
- the extension objectIFException
- if an error occurs while handling this eventprotected RenderingContext createRenderingContext() throws IllegalStateException
IllegalStateException
- unless overriddenpublic void renderNamedDestination(NamedDestination destination) throws IFException
renderNamedDestination
in interface IFDocumentNavigationHandler
destination
- the named destinationIFException
- if an error occurs while handling this eventpublic void renderBookmarkTree(BookmarkTree tree) throws IFException
renderBookmarkTree
in interface IFDocumentNavigationHandler
tree
- the bookmark treeIFException
- if an error occurs while handling this eventpublic void renderLink(Link link) throws IFException
renderLink
in interface IFDocumentNavigationHandler
link
- a linkIFException
- of not caughtpublic void addResolvedAction(AbstractAction action) throws IFException
addResolvedAction
in interface IFDocumentNavigationHandler
action
- an actionIFException
- of not caughtpublic int getPageIndex()
getPageIndex
in interface IFDocumentNavigationHandler
public boolean isBackgroundRequired(BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight)
isBackgroundRequired
in interface IFPainter
bpsTop
- the before borderbpsBottom
- the after borderbpsLeft
- the start borderbpsRight
- the end borderCopyright © 2025 Apache Software Foundation. All rights reserved.