Package com.itextpdf.svg.renderers.impl
Class AbstractSvgNodeRenderer
java.lang.Object
com.itextpdf.svg.renderers.impl.AbstractSvgNodeRenderer
- All Implemented Interfaces:
-
ISvgNodeRenderer
- Direct Known Subclasses:
-
AbstractBranchSvgNodeRenderer
,EllipseSvgNodeRenderer
,ImageSvgNodeRenderer
,LineSvgNodeRenderer
,PathSvgNodeRenderer
,PolylineSvgNodeRenderer
,RectangleSvgNodeRenderer
,TextLeafSvgNodeRenderer
,TextSvgBranchRenderer
,UseSvgNodeRenderer
ISvgNodeRenderer
abstract implementation.
-
Field Summary
FieldsModifier and TypeFieldDescriptionMap that contains attributes and styles used for drawing operations. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Method to see if the renderer can create a viewportprotected boolean
Method to see if a certain renderer can use fill.protected void
deepCopyAttributesAndStyles
(ISvgNodeRenderer deepCopy) Make a deep copy of the styles and attributes of this renderer Helper method for deep copying logicprotected abstract void
doDraw
(SvgDrawContext context) Draws this element to a canvas-like object maintained in the context.final void
draw
(SvgDrawContext context) Applies transformations set to this object, if any, and delegates the drawing of this element and its children to thedoDraw
method.getAttribute
(String key) Retrieves the property value for a given key name.Get a modifiable copy of the style and attribute mapgetAttributeOrDefault
(String key, String defaultValue) Retrieves the property value for a given key name or default if the property value isnull
or missing.float
Deprecated.float
getCurrentFontSize
(SvgDrawContext context) Return font-size of the current element in px.getCurrentViewBox
(SvgDrawContext context) Gets the viewbox from the first parent element which can define it.Gets the parent of this renderer.protected boolean
isHidden()
Check if this renderer should draw the element based on its attributes (e.g.protected float
parseAbsoluteLength
(String length, float percentBaseValue, float defaultValue, SvgDrawContext context) Deprecated.protected float
parseHorizontalLength
(String length, SvgDrawContext context) Parse x-axis length value.protected float
parseVerticalLength
(String length, SvgDrawContext context) Parse y-axis length value.void
setAttribute
(String key, String value) Sets a property key and value pairs for a given attributevoid
setAttributesAndStyles
(Map<String, String> attributesAndStyles) Sets the map of XML node attributes and CSS style properties that this renderer needs.void
setParent
(ISvgNodeRenderer parent) Sets the parent of this renderer.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.itextpdf.svg.renderers.ISvgNodeRenderer
createDeepCopy, getObjectBoundingBox
-
Field Details
-
attributesAndStyles
Map that contains attributes and styles used for drawing operations.
-
-
Constructor Details
-
AbstractSvgNodeRenderer
public AbstractSvgNodeRenderer()
-
-
Method Details
-
setParent
Description copied from interface:ISvgNodeRenderer
Sets the parent of this renderer. The parent may be the source of inherited properties and default values.- Specified by:
-
setParent
in interfaceISvgNodeRenderer
- Parameters:
-
parent
- the parent renderer
-
getParent
Description copied from interface:ISvgNodeRenderer
Gets the parent of this renderer. The parent may be the source of inherited properties and default values.- Specified by:
-
getParent
in interfaceISvgNodeRenderer
- Returns:
- the parent renderer; null in case of a root node
-
setAttributesAndStyles
Description copied from interface:ISvgNodeRenderer
Sets the map of XML node attributes and CSS style properties that this renderer needs.- Specified by:
-
setAttributesAndStyles
in interfaceISvgNodeRenderer
- Parameters:
-
attributesAndStyles
- the mapping from key names to values
-
getAttribute
Description copied from interface:ISvgNodeRenderer
Retrieves the property value for a given key name.- Specified by:
-
getAttribute
in interfaceISvgNodeRenderer
- Parameters:
-
key
- the name of the property to search for - Returns:
-
the value for this key, or
null
-
getAttributeOrDefault
Retrieves the property value for a given key name or default if the property value isnull
or missing.- Parameters:
-
key
- the name of the property to search for -
defaultValue
- the default value to be returned if the property isnull
or missing - Returns:
-
the value for this key, or
defaultValue
-
setAttribute
Description copied from interface:ISvgNodeRenderer
Sets a property key and value pairs for a given attribute- Specified by:
-
setAttribute
in interfaceISvgNodeRenderer
- Parameters:
-
key
- the name of the attribute -
value
- the value of the attribute
-
getAttributeMapCopy
Description copied from interface:ISvgNodeRenderer
Get a modifiable copy of the style and attribute map- Specified by:
-
getAttributeMapCopy
in interfaceISvgNodeRenderer
- Returns:
- copy of the attributes and styles-map
-
draw
Applies transformations set to this object, if any, and delegates the drawing of this element and its children to thedoDraw
method.- Specified by:
-
draw
in interfaceISvgNodeRenderer
- Parameters:
-
context
- the object that knows the place to draw this element and maintains its state
-
canElementFill
protected boolean canElementFill()Method to see if a certain renderer can use fill.- Returns:
- true if the renderer can use fill
-
canConstructViewPort
public boolean canConstructViewPort()Method to see if the renderer can create a viewport- Returns:
- true if the renderer can construct a viewport
-
getCurrentFontSize
Deprecated.Return font-size of the current element in px.This method is deprecated in favour of
getCurrentFontSize(SvgDrawContext)
because current one can't support relative values (em, rem) and those can't be resolved withoutSvgDrawContext
.- Returns:
- absolute value of font-size
-
getCurrentFontSize
Return font-size of the current element in px.- Parameters:
-
context
- draw context from which root font size can be extracted - Returns:
- absolute value of font-size
-
getCurrentViewBox
Gets the viewbox from the first parent element which can define it.See SVG specification to find which elements can define a viewbox.
- Parameters:
-
context
- draw context from which fallback viewbox can be extracted - Returns:
-
the viewbox or
null
if the element doesn't have parent which can define the viewbox
-
deepCopyAttributesAndStyles
Make a deep copy of the styles and attributes of this renderer Helper method for deep copying logic- Parameters:
-
deepCopy
- renderer to insert the deep copied attributes into
-
doDraw
Draws this element to a canvas-like object maintained in the context.- Parameters:
-
context
- the object that knows the place to draw this element and maintains its state
-
isHidden
protected boolean isHidden()Check if this renderer should draw the element based on its attributes (e.g. visibility/display)- Returns:
- true if element won't be drawn, false otherwise
-
parseHorizontalLength
Parse x-axis length value. If this method is called and there is no view port inSvgDrawContext
, a default current viewport will be created. This can happen if svg is created manually (not throughSvgImage
orSvgImageXObject
) and don't havePdfRootSvgNodeRenderer
as its parent.- Parameters:
-
length
-String
length for parsing -
context
- currentSvgDrawContext
instance - Returns:
- absolute length in points
-
parseVerticalLength
Parse y-axis length value. If this method is called and there is no view port inSvgDrawContext
, a default current viewport will be created. This can happen if svg is created manually (not throughSvgImage
orSvgImageXObject
) and don't havePdfRootSvgNodeRenderer
as its parent.- Parameters:
-
length
-String
length for parsing -
context
- currentSvgDrawContext
instance - Returns:
- absolute length in points
-
parseAbsoluteLength
@Deprecated protected float parseAbsoluteLength(String length, float percentBaseValue, float defaultValue, SvgDrawContext context) Deprecated.Parse length attributes.This method is deprecated and
SvgCssUtils.parseAbsoluteLength(AbstractSvgNodeRenderer, String, float, float, SvgDrawContext)
should be used instead.- Parameters:
-
length
-String
for parsing -
percentBaseValue
- the value on which percent length is based on -
defaultValue
- default value if length is not recognized -
context
- currentSvgDrawContext
- Returns:
- absolute value in points
-