Package com.itextpdf.svg.renderers.impl
Class ClipPathSvgNodeRenderer
- java.lang.Object
-
- com.itextpdf.svg.renderers.impl.AbstractSvgNodeRenderer
-
- com.itextpdf.svg.renderers.impl.AbstractBranchSvgNodeRenderer
-
- com.itextpdf.svg.renderers.impl.ClipPathSvgNodeRenderer
-
- All Implemented Interfaces:
IBranchSvgNodeRenderer,ISvgNodeRenderer
public class ClipPathSvgNodeRenderer extends AbstractBranchSvgNodeRenderer
This renderer represents a collection of elements (simple shapes and paths). The elements are not drawn visibly, but the union of their shapes will be used to only show the parts of the drawn objects that fall within the clipping path.In PDF, the clipping path operators use the intersection of all its elements, not the union (as in SVG); thus, we need to draw the clipped elements multiple times if the clipping path consists of multiple elements.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.itextpdf.svg.renderers.impl.AbstractSvgNodeRenderer
AbstractSvgNodeRenderer.FillProperties, AbstractSvgNodeRenderer.StrokeProperties
-
-
Field Summary
Fields Modifier and Type Field Description private AbstractSvgNodeRendererclippedRenderer-
Fields inherited from class com.itextpdf.svg.renderers.impl.AbstractBranchSvgNodeRenderer
VIEWBOX_VALUES_NUMBER
-
Fields inherited from class com.itextpdf.svg.renderers.impl.AbstractSvgNodeRenderer
attributesAndStyles, doFill, doStroke
-
-
Constructor Summary
Constructors Constructor Description ClipPathSvgNodeRenderer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ISvgNodeRenderercreateDeepCopy()Creates a deep copy of this renderer, including it's subtree of childrenprotected voiddoDraw(SvgDrawContext context)Method that will set properties to be inherited by this branch renderer's children and will iterate over all children in order to draw them.voiddrawClippedRenderer(SvgDrawContext context)Draw the clipped renderer.RectanglegetObjectBoundingBox(SvgDrawContext context)Calculates the current object bounding box.protected booleanisHidden()Check if this renderer should draw the element based on its attributes (e.g.(package private) voidpreDraw(SvgDrawContext context)Operations to perform before drawing an element.voidsetClippedRenderer(AbstractSvgNodeRenderer clippedRenderer)Sets the clipped renderer.-
Methods inherited from class com.itextpdf.svg.renderers.impl.AbstractBranchSvgNodeRenderer
addChild, applyViewBox, calculateAndApplyViewBox, deepCopyChildren, getChildren, postDraw
-
Methods inherited from class com.itextpdf.svg.renderers.impl.AbstractSvgNodeRenderer
applyFillAndStrokeProperties, applyNonScalingStrokeTransform, calculateViewPortTranslation, canConstructViewPort, canElementFill, deepCopyAttributesAndStyles, doStrokeOrFill, draw, getAttribute, getAttributeMapCopy, getAttributeOrDefault, getCurrentFontSize, getCurrentFontSize, getCurrentViewBox, getParent, getParentClipPath, parseAbsoluteLength, parseHorizontalLength, parseVerticalLength, retrieveAlignAndMeet, setAttribute, setAttributesAndStyles, setParent
-
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
draw, getAttribute, getAttributeMapCopy, getParent, setAttribute, setAttributesAndStyles, setParent
-
-
-
-
Field Detail
-
clippedRenderer
private AbstractSvgNodeRenderer clippedRenderer
-
-
Method Detail
-
createDeepCopy
public ISvgNodeRenderer createDeepCopy()
Description copied from interface:ISvgNodeRendererCreates a deep copy of this renderer, including it's subtree of children- Specified by:
createDeepCopyin interfaceISvgNodeRenderer- Specified by:
createDeepCopyin classAbstractBranchSvgNodeRenderer- Returns:
- deep copy of this renderer
-
getObjectBoundingBox
public Rectangle getObjectBoundingBox(SvgDrawContext context)
Description copied from interface:ISvgNodeRendererCalculates the current object bounding box.- Parameters:
context- the current context, for instance it contains current viewport and available font data- Returns:
- the
Rectanglerepresenting the current object's bounding box, or null if bounding box is undefined
-
preDraw
void preDraw(SvgDrawContext context)
Description copied from class:AbstractSvgNodeRendererOperations to perform before drawing an element. This includes setting stroke color and width, fill color.- Overrides:
preDrawin classAbstractSvgNodeRenderer- Parameters:
context- the svg draw context
-
doDraw
protected void doDraw(SvgDrawContext context)
Description copied from class:AbstractBranchSvgNodeRendererMethod that will set properties to be inherited by this branch renderer's children and will iterate over all children in order to draw them.- Overrides:
doDrawin classAbstractBranchSvgNodeRenderer- Parameters:
context- the object that knows the place to draw this element and maintains its state
-
drawClippedRenderer
public void drawClippedRenderer(SvgDrawContext context)
Draw the clipped renderer.- Parameters:
context- the context on which clipped renderer will be drawn
-
setClippedRenderer
public void setClippedRenderer(AbstractSvgNodeRenderer clippedRenderer)
Sets the clipped renderer.- Parameters:
clippedRenderer- the clipped renderer
-
isHidden
protected boolean isHidden()
Description copied from class:AbstractSvgNodeRendererCheck if this renderer should draw the element based on its attributes (e.g. visibility/display)- Overrides:
isHiddenin classAbstractSvgNodeRenderer- Returns:
- true if element won't be drawn, false otherwise
-
-