Class PatternSvgNodeRenderer
java.lang.Object
com.itextpdf.svg.renderers.impl.AbstractSvgNodeRenderer
com.itextpdf.svg.renderers.impl.AbstractBranchSvgNodeRenderer
com.itextpdf.svg.renderers.impl.PatternSvgNodeRenderer
- All Implemented Interfaces:
IBranchSvgNodeRenderer, INoDrawSvgNodeRenderer, ISvgNodeRenderer, ISvgPaintServer
public class PatternSvgNodeRenderer
extends AbstractBranchSvgNodeRenderer
implements ISvgPaintServer
Implementation for the svg <pattern> tag.
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractSvgNodeRenderer
AbstractSvgNodeRenderer.FillProperties, AbstractSvgNodeRenderer.StrokeProperties -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleprivate static final org.slf4j.LoggerFields inherited from class AbstractBranchSvgNodeRenderer
VIEWBOX_VALUES_NUMBERFields inherited from class AbstractSvgNodeRenderer
attributesAndStyles, doFill, doStroke -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate RectanglecalculateAppliedViewBox(Rectangle viewBox, double xStep, double yStep) private RectanglecalculateOriginalPatternRectangle(SvgDrawContext context, boolean isObjectBoundingBoxInPatternUnits) createColor(SvgDrawContext context, Rectangle objectBoundingBox, float objectBoundingBoxMargin, float parentOpacity) Creates theColorthat represents the corresponding paint server for specified object box.private static PdfPattern.TilingcreateColoredTilingPatternInstance(AffineTransform patternAffineTransform, Rectangle bbox, double xStep, double yStep) Creates a deep copy of this renderer, including it's subtree of childrenprivate PdfPattern.TilingcreateTilingPattern(SvgDrawContext context, Rectangle objectBoundingBox) private voiddrawPatternContent(SvgDrawContext context, PdfPattern.Tiling pattern) getObjectBoundingBox(SvgDrawContext context) Calculates the current object bounding box.private AffineTransformprivate static AffineTransformgetTransformToUserSpaceOnUse(Rectangle objectBoundingBox) private booleanprivate booleanprivate static booleanisViewBoxInvalid(float[] viewBoxValues) private static voidsetPatternMatrix(PdfPattern.Tiling pattern, AffineTransform affineTransform) private static booleanxStepYStepAreValid(double xStep, double yStep) Methods inherited from class AbstractBranchSvgNodeRenderer
addChild, applyViewBox, calculateAndApplyViewBox, deepCopyChildren, doDraw, getChildren, postDrawMethods inherited from class AbstractSvgNodeRenderer
applyFillAndStrokeProperties, applyNonScalingStrokeTransform, calculateViewPortTranslation, canConstructViewPort, canElementFill, deepCopyAttributesAndStyles, doStrokeOrFill, draw, getAttribute, getAttributeMapCopy, getAttributeOrDefault, getCurrentFontSize, getCurrentFontSize, getCurrentViewBox, getParent, getParentClipPath, isHidden, parseAbsoluteLength, parseHorizontalLength, parseVerticalLength, preDraw, retrieveAlignAndMeet, setAttribute, setAttributesAndStyles, setParentMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface IBranchSvgNodeRenderer
addChild, getChildrenMethods inherited from interface ISvgNodeRenderer
draw, getAttribute, getAttributeMapCopy, getParent, setAttribute, setAttributesAndStyles, setParent
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
CONVERT_COEFF
private static final double CONVERT_COEFF- See Also:
-
-
Constructor Details
-
PatternSvgNodeRenderer
public PatternSvgNodeRenderer()
-
-
Method Details
-
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
-
createColor
public Color createColor(SvgDrawContext context, Rectangle objectBoundingBox, float objectBoundingBoxMargin, float parentOpacity) Description copied from interface:ISvgPaintServerCreates theColorthat represents the corresponding paint server for specified object box.- Specified by:
createColorin interfaceISvgPaintServer- Parameters:
context- the current svg draw contextobjectBoundingBox- the coloring object bounding box without any adjustments (additional stroke width or others)objectBoundingBoxMargin- the objectBoundingBoxMargin of the object bounding box to be colored (for example - the part of stroke width that exceeds the object bounding box, i.e. the half of stroke width value)parentOpacity- current parent opacity modifier- Returns:
- the created color
-
getObjectBoundingBox
Description copied from interface:ISvgNodeRendererCalculates the current object bounding box.- Specified by:
getObjectBoundingBoxin interfaceISvgNodeRenderer- 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
-
createTilingPattern
-
calculateAppliedViewBox
-
drawPatternContent
-
calculateOriginalPatternRectangle
private Rectangle calculateOriginalPatternRectangle(SvgDrawContext context, boolean isObjectBoundingBoxInPatternUnits) -
isObjectBoundingBoxInPatternUnits
private boolean isObjectBoundingBoxInPatternUnits() -
isObjectBoundingBoxInPatternContentUnits
private boolean isObjectBoundingBoxInPatternContentUnits() -
createColoredTilingPatternInstance
private static PdfPattern.Tiling createColoredTilingPatternInstance(AffineTransform patternAffineTransform, Rectangle bbox, double xStep, double yStep) -
setPatternMatrix
-
getTransformToUserSpaceOnUse
-
xStepYStepAreValid
private static boolean xStepYStepAreValid(double xStep, double yStep) -
isViewBoxInvalid
private static boolean isViewBoxInvalid(float[] viewBoxValues) -
getPatternTransform
-