Class AbstractPLImage<IMPLTYPE extends AbstractPLImage<IMPLTYPE>>
- java.lang.Object
-
- com.helger.pdflayout.base.AbstractPLObject<IMPLTYPE>
-
- com.helger.pdflayout.base.AbstractPLRenderableObject<IMPLTYPE>
-
- com.helger.pdflayout.base.AbstractPLElement<IMPLTYPE>
-
- com.helger.pdflayout.base.AbstractPLInlineElement<IMPLTYPE>
-
- com.helger.pdflayout.element.image.AbstractPLImage<IMPLTYPE>
-
- Type Parameters:
IMPLTYPE- Implementation type
- All Implemented Interfaces:
com.helger.commons.id.IHasID<String>,com.helger.commons.traits.IGenericImplTrait<IMPLTYPE>,IPLElement<IMPLTYPE>,IPLHasBorder<IMPLTYPE>,IPLHasFillColor<IMPLTYPE>,IPLHasMargin<IMPLTYPE>,IPLHasMarginBorderPadding<IMPLTYPE>,IPLHasOutline,IPLHasPadding<IMPLTYPE>,IPLInlineElement<IMPLTYPE>,IPLObject<IMPLTYPE>,IPLRenderableObject<IMPLTYPE>,IPLVisitable
- Direct Known Subclasses:
PLImage,PLStreamImage
public abstract class AbstractPLImage<IMPLTYPE extends AbstractPLImage<IMPLTYPE>> extends AbstractPLInlineElement<IMPLTYPE>
Base class for a static image based onBufferedImage.- Author:
- Philip Helger
-
-
Field Summary
Fields Modifier and Type Field Description static EPLImageTypeDEFAULT_IMAGE_TYPE-
Fields inherited from interface com.helger.pdflayout.base.IPLElement
DEFAULT_MAX_SIZE, DEFAULT_MIN_SIZE
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasBorder
DEFAULT_BORDER
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasFillColor
DEFAULT_FILL_COLOR
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasMargin
DEFAULT_MARGIN
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasPadding
DEFAULT_PADDING
-
-
Constructor Summary
Constructors Constructor Description AbstractPLImage(float fImageWidth, float fImageHeight)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description com.helger.commons.state.EChangebeforeRender(PagePreRenderContext aCtx)Called after the page was created but before the content stream is created.floatgetImageHeight()EPLImageTypegetImageType()floatgetImageWidth()protected abstract org.apache.pdfbox.pdmodel.graphics.image.PDImageXObjectgetXObject(PagePreRenderContext aCtx)Resolve thePDImageXObjectfor rendering.protected voidonMarkAsNotPrepared()PL objects need to overwrite this method to reset their preparation state.protected SizeSpeconPrepare(PreparationContext aCtx)The abstract method that must be implemented by all subclasses.protected voidonRender(PageRenderContext aCtx)Abstract method to be implemented by subclasses.IMPLTYPEsetBasicDataFrom(IMPLTYPE aSource)For copying stuff internally.IMPLTYPEsetImageType(EPLImageType eImageType)Set the image type to be used.StringtoString()-
Methods inherited from class com.helger.pdflayout.base.AbstractPLElement
getBorder, getFillColor, getMargin, getMaxSize, getMinSize, getPadding, getRenderSize, setBorder, setFillColor, setMargin, setMaxSize, setMinSize, setPadding
-
Methods inherited from class com.helger.pdflayout.base.AbstractPLRenderableObject
getPrepareAvailableSize, getPreparedSize, getRenderSize, internalCheckAlreadyPrepared, internalCheckNotPrepared, internalMarkAsNotPrepared, internalMarkAsNotPreparedDontPropagate, internalMarkAsPrepared, isPrepared, onRenderSizeChange, prepare, render, visit
-
Methods inherited from class com.helger.pdflayout.base.AbstractPLObject
getDebugID, getID, onAfterSetID, setID
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.helger.pdflayout.base.IPLElement
getMaxHeight, getMaxSize, getMaxWidth, getMinHeight, getMinSize, getMinWidth, setExactHeight, setExactSize, setExactWidth, setMaxHeight, setMaxSize, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinSize, setMinWidth
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasBorder
getBorder, getBorderBottomWidth, getBorderLeftWidth, getBorderRightWidth, getBorderTopWidth, getBorderXSumWidth, getBorderYSumWidth, setBorder, setBorder, setBorder, setBorder, setBorder, setBorderBottom, setBorderLeft, setBorderRight, setBorderTop, setBorderX, setBorderY
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasFillColor
getFillColor, hasFillColor, setFillColor
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasMargin
addMarginBottom, addMarginLeft, addMarginRight, addMarginTop, addMarginX, addMarginY, getMargin, getMarginBottom, getMarginLeft, getMarginRight, getMarginTop, getMarginXSum, getMarginYSum, setMargin, setMargin, setMargin, setMargin, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setMarginX, setMarginY
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasMarginBorderPadding
getOutlineBottom, getOutlineLeft, getOutlineRight, getOutlineTop, getOutlineXSum, getOutlineYSum
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasPadding
addPaddingBottom, addPaddingLeft, addPaddingRight, addPaddingTop, addPaddingX, addPaddingY, getPadding, getPaddingBottom, getPaddingLeft, getPaddingRight, getPaddingTop, getPaddingXSum, getPaddingYSum, setPadding, setPadding, setPadding, setPadding, setPaddingBottom, setPaddingLeft, setPaddingRight, setPaddingTop, setPaddingX, setPaddingY
-
Methods inherited from interface com.helger.pdflayout.base.IPLObject
getAsSplittable, getDebugID, hasID, isVertSplittable
-
Methods inherited from interface com.helger.pdflayout.base.IPLRenderableObject
getPreparedHeight, getPreparedSize, getPreparedWidth, getRenderHeight, getRenderSize, getRenderWidth, isPrepared, prepare, render
-
Methods inherited from interface com.helger.pdflayout.base.IPLVisitable
visit
-
-
-
-
Field Detail
-
DEFAULT_IMAGE_TYPE
public static final EPLImageType DEFAULT_IMAGE_TYPE
-
-
Constructor Detail
-
AbstractPLImage
public AbstractPLImage(@Nonnegative float fImageWidth, @Nonnegative float fImageHeight)
-
-
Method Detail
-
setBasicDataFrom
@Nonnull @OverridingMethodsMustInvokeSuper public IMPLTYPE setBasicDataFrom(@Nonnull IMPLTYPE aSource)
Description copied from interface:IPLObjectFor copying stuff internally. Must always call super method- Specified by:
setBasicDataFromin interfaceIPLObject<IMPLTYPE extends AbstractPLImage<IMPLTYPE>>- Overrides:
setBasicDataFromin classAbstractPLInlineElement<IMPLTYPE extends AbstractPLImage<IMPLTYPE>>- Parameters:
aSource- Source object to copy from. May not benull.- Returns:
- this for chaining
-
getImageWidth
@Nonnegative public final float getImageWidth()
-
getImageHeight
@Nonnegative public final float getImageHeight()
-
getImageType
@Nonnull public final EPLImageType getImageType()
- Returns:
- The image type to use. Never
null. The default isDEFAULT_IMAGE_TYPE. - Since:
- 5.0.1
- See Also:
setImageType(EPLImageType)
-
setImageType
@Nonnull public final IMPLTYPE setImageType(@Nonnull EPLImageType eImageType)
Set the image type to be used.
Note: not all image types may be supported by all subclasses of this class. Please check the respective documentation!- Parameters:
eImageType- The image type to be used. May not benull.- Returns:
- this for chaining
-
onPrepare
protected SizeSpec onPrepare(@Nonnull PreparationContext aCtx)
Description copied from class:AbstractPLRenderableObjectThe abstract method that must be implemented by all subclasses. It is ensured that this method is called only once per instance!- Specified by:
onPreparein classAbstractPLRenderableObject<IMPLTYPE extends AbstractPLImage<IMPLTYPE>>- Parameters:
aCtx- Preparation context. Nevernull.- Returns:
- The size of the rendered element without padding, border and
margin. May not be
null.
-
onMarkAsNotPrepared
protected void onMarkAsNotPrepared()
Description copied from class:AbstractPLRenderableObjectPL objects need to overwrite this method to reset their preparation state. They also need to propagate this to their children!- Specified by:
onMarkAsNotPreparedin classAbstractPLRenderableObject<IMPLTYPE extends AbstractPLImage<IMPLTYPE>>
-
getXObject
@Nonnull protected abstract org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject getXObject(@Nonnull PagePreRenderContext aCtx) throws IOException
Resolve thePDImageXObjectfor rendering. Must consider the image type according togetImageType().- Parameters:
aCtx- Render context- Returns:
- Never
null. - Throws:
IOException- In case of error.
-
beforeRender
@Nonnull public com.helger.commons.state.EChange beforeRender(@Nonnull PagePreRenderContext aCtx)
Description copied from interface:IPLRenderableObjectCalled after the page was created but before the content stream is created. This is e.g. used for images to create their XObjects upfront.- Parameters:
aCtx- The current page render context. Nevernull.- Returns:
EChange.CHANGEDif something changed. May not benull.
-
onRender
protected void onRender(@Nonnull PageRenderContext aCtx) throws IOException
Description copied from class:AbstractPLRenderableObjectAbstract method to be implemented by subclasses.- Specified by:
onRenderin classAbstractPLRenderableObject<IMPLTYPE extends AbstractPLImage<IMPLTYPE>>- Parameters:
aCtx- Rendering context. Nevernull.- Throws:
IOException- In case of a PDFBox error
-
toString
public String toString()
- Overrides:
toStringin classAbstractPLElement<IMPLTYPE extends AbstractPLImage<IMPLTYPE>>
-
-