Package org.apache.poi.hslf.usermodel
Class HSLFTextShape
- java.lang.Object
-
- org.apache.poi.hslf.usermodel.HSLFShape
-
- org.apache.poi.hslf.usermodel.HSLFSimpleShape
-
- org.apache.poi.hslf.usermodel.HSLFTextShape
-
- All Implemented Interfaces:
Iterable<HSLFTextParagraph>,IAdjustableShape,PlaceableShape<HSLFShape,HSLFTextParagraph>,Shape<HSLFShape,HSLFTextParagraph>,SimpleShape<HSLFShape,HSLFTextParagraph>,TextShape<HSLFShape,HSLFTextParagraph>
- Direct Known Subclasses:
HSLFAutoShape,HSLFLine,HSLFTextBox
public abstract class HSLFTextShape extends HSLFSimpleShape implements TextShape<HSLFShape,HSLFTextParagraph>
A common superclass of all shapes that can hold text.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.poi.sl.usermodel.TextShape
TextShape.TextAutofit, TextShape.TextDirection, TextShape.TextPlaceholder
-
-
Field Summary
Fields Modifier and Type Field Description static intWrapByPointsSpecifies a wrapping rule that is equivalent to that of WrapSquare Excel 97, Excel 2000, Excel 2002, and Office Excel 2003 use this value.static intWrapNoneSpecifies that a line of text will extend into or beyond a margin instead of continuing on subsequent lines.static intWrapSquareSpecifies that a line of text will continue on subsequent lines instead of extending into or beyond a margin.static intWrapThroughSpecifies a wrapping rule that is undefined and MUST be ignored.static intWrapTopBottomSpecifies a wrapping rule that is undefined and MUST be ignored.-
Fields inherited from class org.apache.poi.hslf.usermodel.HSLFSimpleShape
_hyperlink, ADJUST_VALUES, DEFAULT_LINE_WIDTH
-
-
Constructor Summary
Constructors Modifier Constructor Description HSLFTextShape()Create a new TextBox.protectedHSLFTextShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape,HSLFTextParagraph> parent)Create a TextBox object and initialize it from the supplied Record container.HSLFTextShape(ShapeContainer<HSLFShape,HSLFTextParagraph> parent)Create a new TextBox.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidafterInsert(HSLFSheet sh)When a textbox is added to a sheet we need to tell upper-levelPPDrawingabout it.HSLFTextRunappendText(String text, boolean newParagraph)doublegetBottomInset()Returns the distance (in points) between the bottom of the text frame and the bottom of the inscribed rectangle of the shape that contains the text.protected EscherTextboxWrappergetEscherTextboxWrapper()RoundTripHFPlaceholder12getHFPlaceholderAtom()ReturnRoundTripHFPlaceholder12, the atom that describes a header/footer placeholder.List<HSLFHyperlink>getHyperlinks()Returns the array of all hyperlinks in this text runInsets2DgetInsets()doublegetLeftInset()Returns the distance (in points) between the left edge of the text frame and the left edge of the inscribed rectangle of the shape that contains the text.<S extends Shape<S,P>,P extends TextParagraph<S,P,? extends TextRun>>
Shape<S,P>getMetroShape()Get alternative representation of text shape stored as metro blob escher property.OEPlaceholderAtomgetPlaceholderAtom()ReturnOEPlaceholderAtom, the atom that describes a placeholder.StringgetRawText()Returns the raw text content of the shape.doublegetRightInset()Returns the distance (in points) between the right edge of the text frame and the right edge of the inscribed rectangle of the shape that contains the text.intgetRunType()Returns the type of the text, from the TextHeaderAtom.StringgetText()TextShape.TextDirectiongetTextDirection()doublegetTextHeight()doublegetTextHeight(Graphics2D graphics)intgetTextId()List<HSLFTextParagraph>getTextParagraphs()TextShape.TextPlaceholdergetTextPlaceholder()DoublegetTextRotation()doublegetTopInset()Returns the distance (in points) between the top of the text frame and the top of the inscribed rectangle of the shape that contains the text.VerticalAlignmentgetVerticalAlignment()booleangetWordWrap()intgetWordWrapEx()Returns the value indicating word wrap.booleanisAlignToBaseline()booleanisHorizontalCentered()booleanisPlaceholder()Iterator<HSLFTextParagraph>iterator()Rectangle2DresizeToFitText()Rectangle2DresizeToFitText(Graphics2D graphics)voidsetAlignToBaseline(boolean alignToBaseline)Sets the vertical alignment relative to the baselinevoidsetBottomInset(double margin)Sets the botom margin.protected voidsetDefaultTextProperties(HSLFTextParagraph _txtrun)Set default properties for the TextRun.voidsetHorizontalCentered(Boolean isCentered)voidsetInsets(Insets2D insets)voidsetLeftInset(double margin)Sets the left margin.voidsetRightInset(double margin)Sets the right margin.voidsetRunType(int type)Changes the type of the text.voidsetSheet(HSLFSheet sheet)Assign theSlideShowthis shape belongs toHSLFTextRunsetText(String text)voidsetTextDirection(TextShape.TextDirection orientation)voidsetTextId(int id)Sets text IDvoidsetTextPlaceholder(TextShape.TextPlaceholder placeholder)voidsetTextRotation(Double rotation)voidsetTopInset(double margin)Sets the top margin.voidsetVerticalAlignment(VerticalAlignment vAlign)voidsetWordWrap(boolean wrap)voidsetWordWrapEx(int wrap)Specifies how the text should be wrappedSpliterator<HSLFTextParagraph>spliterator()protected voidstoreText()Saves the modified paragraphs/textrun to the records.-
Methods inherited from class org.apache.poi.hslf.usermodel.HSLFSimpleShape
createHyperlink, createSpContainer, getAdjustValue, getFillColor, getGeometry, getHyperlink, getLineBackgroundColor, getLineCap, getLineColor, getLineCompound, getLineDash, getLineDecoration, getLineHeadDecoration, getLineHeadLength, getLineHeadWidth, getLineTailDecoration, getLineTailLength, getLineTailWidth, getLineWidth, getPlaceholder, getPlaceholderDetails, getShadow, getShadowAngle, getShadowColor, getShadowDistance, getStrokeStyle, setFillColor, setHyperlink, setLineBackgroundColor, setLineCap, setLineColor, setLineCompound, setLineDash, setLineHeadDecoration, setLineHeadLength, setLineHeadWidth, setLineTailDecoration, setLineTailLength, setLineTailWidth, setLineWidth, setPlaceholder, setStrokeStyle
-
Methods inherited from class org.apache.poi.hslf.usermodel.HSLFShape
draw, getAnchor, getClientData, getClientDataRecord, getClientRecords, getEscherChild, getEscherChild, getEscherChild, getEscherChild, getEscherOptRecord, getEscherProperty, getEscherProperty, getEscherProperty, getEscherProperty, getEscherProperty, getEscherProperty, getFill, getFillStyle, getFlipHorizontal, getFlipVertical, getParent, getRotation, getShapeId, getShapeName, getShapeType, getSheet, getSpContainer, moveTo, setAnchor, setEscherProperty, setEscherProperty, setEscherProperty, setEscherProperty, setEscherProperty, setFlipHorizontal, setFlipVertical, setRotation, setShapeId, setShapeType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.poi.sl.draw.geom.IAdjustableShape
getAdjustValue
-
Methods inherited from interface org.apache.poi.sl.usermodel.PlaceableShape
getAnchor, getFlipHorizontal, getFlipVertical, getParent, getRotation, getSheet, setAnchor, setFlipHorizontal, setFlipVertical, setRotation
-
Methods inherited from interface org.apache.poi.sl.usermodel.Shape
draw, getAnchor, getParent, getShapeId, getShapeName, getSheet
-
Methods inherited from interface org.apache.poi.sl.usermodel.SimpleShape
createHyperlink, getFillColor, getFillStyle, getGeometry, getHyperlink, getLineDecoration, getPlaceholder, getPlaceholderDetails, getShadow, getShapeType, getStrokeStyle, setFillColor, setPlaceholder, setShapeType, setStrokeStyle
-
-
-
-
Field Detail
-
WrapSquare
public static final int WrapSquare
Specifies that a line of text will continue on subsequent lines instead of extending into or beyond a margin. Office Excel 2007, Excel 2010, PowerPoint 97, and PowerPoint 2010 read and use this value properly but do not write it.- See Also:
- Constant Field Values
-
WrapByPoints
public static final int WrapByPoints
Specifies a wrapping rule that is equivalent to that of WrapSquare Excel 97, Excel 2000, Excel 2002, and Office Excel 2003 use this value. All other product versions listed at the beginning of this appendix ignore this value.- See Also:
- Constant Field Values
-
WrapNone
public static final int WrapNone
Specifies that a line of text will extend into or beyond a margin instead of continuing on subsequent lines. Excel 97, Word 97, Excel 2000, Word 2000, Excel 2002, and Office Excel 2003 do not use this value.- See Also:
- Constant Field Values
-
WrapTopBottom
public static final int WrapTopBottom
Specifies a wrapping rule that is undefined and MUST be ignored.- See Also:
- Constant Field Values
-
WrapThrough
public static final int WrapThrough
Specifies a wrapping rule that is undefined and MUST be ignored.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
HSLFTextShape
protected HSLFTextShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape,HSLFTextParagraph> parent)
Create a TextBox object and initialize it from the supplied Record container.- Parameters:
escherRecord-EscherSpContainercontainer which holds information about this shapeparent- the parent of the shape
-
HSLFTextShape
public HSLFTextShape(ShapeContainer<HSLFShape,HSLFTextParagraph> parent)
Create a new TextBox. This constructor is used when a new shape is created.- Parameters:
parent- the parent of this Shape. For example, if this text box is a cell in a table then the parent is Table.
-
HSLFTextShape
public HSLFTextShape()
Create a new TextBox. This constructor is used when a new shape is created.
-
-
Method Detail
-
setDefaultTextProperties
protected void setDefaultTextProperties(HSLFTextParagraph _txtrun)
Set default properties for the TextRun. Depending on the text and shape type the defaults are different: TextBox: align=left, valign=top AutoShape: align=center, valign=middle
-
afterInsert
protected void afterInsert(HSLFSheet sh)
When a textbox is added to a sheet we need to tell upper-levelPPDrawingabout it.- Overrides:
afterInsertin classHSLFShape- Parameters:
sh- the sheet we are adding to
-
getEscherTextboxWrapper
protected EscherTextboxWrapper getEscherTextboxWrapper()
-
resizeToFitText
public Rectangle2D resizeToFitText()
- Specified by:
resizeToFitTextin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
resizeToFitText
public Rectangle2D resizeToFitText(Graphics2D graphics)
- Specified by:
resizeToFitTextin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getRunType
public int getRunType()
Returns the type of the text, from the TextHeaderAtom. Possible values can be seen from TextHeaderAtom- See Also:
TextHeaderAtom
-
setRunType
public void setRunType(int type)
Changes the type of the text. Values should be taken from TextHeaderAtom. No checking is done to ensure you set this to a valid value!- See Also:
TextHeaderAtom
-
isAlignToBaseline
public boolean isAlignToBaseline()
- Returns:
- true, if vertical alignment is relative to baseline this is only used for older versions less equals Office 2003
-
setAlignToBaseline
public void setAlignToBaseline(boolean alignToBaseline)
Sets the vertical alignment relative to the baseline- Parameters:
alignToBaseline- if true, vertical alignment is relative to baseline
-
isHorizontalCentered
public boolean isHorizontalCentered()
- Specified by:
isHorizontalCenteredin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setHorizontalCentered
public void setHorizontalCentered(Boolean isCentered)
- Specified by:
setHorizontalCenteredin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getVerticalAlignment
public VerticalAlignment getVerticalAlignment()
- Specified by:
getVerticalAlignmentin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setVerticalAlignment
public void setVerticalAlignment(VerticalAlignment vAlign)
- Specified by:
setVerticalAlignmentin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getBottomInset
public double getBottomInset()
Returns the distance (in points) between the bottom of the text frame and the bottom of the inscribed rectangle of the shape that contains the text. Default value is 1/20 inch.- Returns:
- the botom margin
-
setBottomInset
public void setBottomInset(double margin)
Sets the botom margin.- Parameters:
margin- the bottom margin- See Also:
getBottomInset()
-
getLeftInset
public double getLeftInset()
Returns the distance (in points) between the left edge of the text frame and the left edge of the inscribed rectangle of the shape that contains the text. Default value is 1/10 inch.- Returns:
- the left margin
-
setLeftInset
public void setLeftInset(double margin)
Sets the left margin.- Parameters:
margin- the left margin- See Also:
getLeftInset()
-
getRightInset
public double getRightInset()
Returns the distance (in points) between the right edge of the text frame and the right edge of the inscribed rectangle of the shape that contains the text. Default value is 1/10 inch.- Returns:
- the right margin
-
setRightInset
public void setRightInset(double margin)
Sets the right margin.- Parameters:
margin- the right margin- See Also:
getRightInset()
-
getTopInset
public double getTopInset()
Returns the distance (in points) between the top of the text frame and the top of the inscribed rectangle of the shape that contains the text. Default value is 1/20 inch.- Returns:
- the top margin
-
setTopInset
public void setTopInset(double margin)
Sets the top margin.- Parameters:
margin- the top margin- See Also:
getTopInset()
-
getWordWrapEx
public int getWordWrapEx()
Returns the value indicating word wrap.- Returns:
- the value indicating word wrap.
Must be one of the
Wrap*constants defined in this class. - See Also:
- MSOWRAPMODE
-
setWordWrapEx
public void setWordWrapEx(int wrap)
Specifies how the text should be wrapped- Parameters:
wrap- the value indicating how the text should be wrapped. Must be one of theWrap*constants defined in this class.
-
getWordWrap
public boolean getWordWrap()
- Specified by:
getWordWrapin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setWordWrap
public void setWordWrap(boolean wrap)
- Specified by:
setWordWrapin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getTextId
public int getTextId()
- Returns:
- id for the text.
-
setTextId
public void setTextId(int id)
Sets text ID- Parameters:
id- of the text
-
getTextParagraphs
public List<HSLFTextParagraph> getTextParagraphs()
- Specified by:
getTextParagraphsin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setSheet
public void setSheet(HSLFSheet sheet)
Description copied from class:HSLFShapeAssign theSlideShowthis shape belongs to
-
getPlaceholderAtom
public OEPlaceholderAtom getPlaceholderAtom()
ReturnOEPlaceholderAtom, the atom that describes a placeholder.- Returns:
OEPlaceholderAtomornullif not found
-
getHFPlaceholderAtom
public RoundTripHFPlaceholder12 getHFPlaceholderAtom()
ReturnRoundTripHFPlaceholder12, the atom that describes a header/footer placeholder. Compare theRoundTripHFPlaceholder12.getPlaceholderId()withPlaceholder.HEADERorPlaceholder.FOOTER, to find out what kind of placeholder this is.- Returns:
RoundTripHFPlaceholder12ornullif not found- Since:
- POI 3.14-Beta2
-
isPlaceholder
public boolean isPlaceholder()
- Specified by:
isPlaceholderin interfaceSimpleShape<HSLFShape,HSLFTextParagraph>- Overrides:
isPlaceholderin classHSLFSimpleShape
-
iterator
public Iterator<HSLFTextParagraph> iterator()
- Specified by:
iteratorin interfaceIterable<HSLFTextParagraph>
-
spliterator
public Spliterator<HSLFTextParagraph> spliterator()
- Specified by:
spliteratorin interfaceIterable<HSLFTextParagraph>- Since:
- POI 5.2.0
-
getInsets
public Insets2D getInsets()
- Specified by:
getInsetsin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setInsets
public void setInsets(Insets2D insets)
- Specified by:
setInsetsin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getTextHeight
public double getTextHeight()
- Specified by:
getTextHeightin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getTextHeight
public double getTextHeight(Graphics2D graphics)
- Specified by:
getTextHeightin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getTextDirection
public TextShape.TextDirection getTextDirection()
- Specified by:
getTextDirectionin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setTextDirection
public void setTextDirection(TextShape.TextDirection orientation)
- Specified by:
setTextDirectionin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getTextRotation
public Double getTextRotation()
- Specified by:
getTextRotationin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setTextRotation
public void setTextRotation(Double rotation)
- Specified by:
setTextRotationin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getRawText
public String getRawText()
Returns the raw text content of the shape. This hasn't had any changes applied to it, and so is probably unlikely to print out nicely.
-
getText
public String getText()
- Specified by:
getTextin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
appendText
public HSLFTextRun appendText(String text, boolean newParagraph)
- Specified by:
appendTextin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
setText
public HSLFTextRun setText(String text)
- Specified by:
setTextin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
storeText
protected void storeText()
Saves the modified paragraphs/textrun to the records. Also updates the styles to the correct text length.
-
getHyperlinks
public List<HSLFHyperlink> getHyperlinks()
Returns the array of all hyperlinks in this text run- Returns:
- the array of all hyperlinks in this text run or
nullif not found.
-
setTextPlaceholder
public void setTextPlaceholder(TextShape.TextPlaceholder placeholder)
- Specified by:
setTextPlaceholderin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getTextPlaceholder
public TextShape.TextPlaceholder getTextPlaceholder()
- Specified by:
getTextPlaceholderin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getMetroShape
public <S extends Shape<S,P>,P extends TextParagraph<S,P,? extends TextRun>> Shape<S,P> getMetroShape()
Get alternative representation of text shape stored as metro blob escher property. The returned shape is the first shape in stored group shape of the metro blob- Returns:
- null, if there's no alternative representation, otherwise the text shape
-
-