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
FieldsModifier and TypeFieldDescriptionstatic final intSpecifies a wrapping rule that is equivalent to that of WrapSquare Excel 97, Excel 2000, Excel 2002, and Office Excel 2003 use this value.static final intSpecifies that a line of text will extend into or beyond a margin instead of continuing on subsequent lines.static final intSpecifies that a line of text will continue on subsequent lines instead of extending into or beyond a margin.static final intSpecifies a wrapping rule that is undefined and MUST be ignored.static final intSpecifies a wrapping rule that is undefined and MUST be ignored.Fields inherited from class org.apache.poi.hslf.usermodel.HSLFSimpleShape
_hyperlink, DEFAULT_LINE_WIDTH -
Constructor Summary
ConstructorsModifierConstructorDescriptionCreate a new TextBox.protectedHSLFTextShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape, HSLFTextParagraph> parent) Create a TextBox object and initialize it from the supplied Record container.Create a new TextBox. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidafterInsert(HSLFSheet sh) When a textbox is added to a sheet we need to tell upper-levelPPDrawingabout it.appendText(String text, boolean newParagraph) Adds the supplied text onto the end of the TextParagraphs, creating a new RichTextRun for it to sit in.doubleReturns 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 EscherTextboxWrapperReturnRoundTripHFPlaceholder12, the atom that describes a header/footer placeholder.Returns the array of all hyperlinks in this text rundoubleReturns 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.TextShape<?,? extends TextParagraph<?, ?, ? extends TextRun>> Get alternative representation of text shape stored as metro blob escher property.ReturnOEPlaceholderAtom, the atom that describes a placeholder.Returns the raw text content of the shape.doubleReturns 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.intReturns the type of the text, from the TextHeaderAtom.getText()Returns the text contained in this text frame, which has been made safe for printing and other use.doubleCompute the cumulative height occupied by the textdoublegetTextHeight(Graphics2D graphics) Compute the cumulative height occupied by the textintThe text rotation can be independent specified from the shape rotation.doubleReturns 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.Returns the type of vertical alignment for the text.booleanintReturns the value indicating word wrap.booleanbooleanReturns if the text is centered.booleanChecks if the shape is a placeholder.iterator()Adjust the size of the shape so it encompasses the text inside it.resizeToFitText(Graphics2D graphics) Adjust the size of the shape so it encompasses the text inside it.voidsetAlignToBaseline(boolean alignToBaseline) Sets the vertical alignment relative to the baselinevoidsetBottomInset(double margin) Sets the botom margin.protected voidSet default properties for the TextRun.voidsetHorizontalCentered(Boolean isCentered) Sets if the paragraphs are horizontal centeredvoidSets the shape marginsvoidsetLeftInset(double margin) Sets the left margin.voidsetRightInset(double margin) Sets the right margin.voidsetRunType(int type) Changes the type of the text.voidAssign theSlideShowthis shape belongs toSets (overwrites) the current text.voidsetTextDirection(TextShape.TextDirection orientation) sets the vertical orientationvoidsetTextId(int id) Sets text IDvoidsetTextPlaceholder(TextShape.TextPlaceholder placeholder) Sets the text placeholdervoidsetTextRotation(Double rotation) Sets the text rotation.voidsetTopInset(double margin) Sets the top margin.voidSets the type of vertical alignment for the text.voidsetWordWrap(boolean wrap) voidsetWordWrapEx(int wrap) Specifies how the text should be wrappedprotected voidSaves 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, setStrokeStyleMethods inherited from class org.apache.poi.hslf.usermodel.HSLFShape
draw, getAnchor, getClientData, getClientDataRecord, getClientRecords, getEscherChild, getEscherChild, getEscherChild, getEscherChild, getEscherOptRecord, getEscherProperty, getEscherProperty, getEscherProperty, getFill, getFillStyle, getFlipHorizontal, getFlipVertical, getParent, getRotation, getShapeId, getShapeName, getShapeType, getSheet, getSpContainer, moveTo, setAnchor, setEscherProperty, setEscherProperty, setFlipHorizontal, setFlipVertical, setRotation, setShapeId, setShapeTypeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.poi.sl.draw.geom.IAdjustableShape
getAdjustValueMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.apache.poi.sl.usermodel.PlaceableShape
getAnchor, getFlipHorizontal, getFlipVertical, getParent, getRotation, getSheet, setAnchor, setFlipHorizontal, setFlipVertical, setRotationMethods inherited from interface org.apache.poi.sl.usermodel.Shape
draw, getAnchor, getParent, getShapeId, getShapeName, getSheetMethods 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 Details
-
WrapSquare
public static final int WrapSquareSpecifies 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:
-
WrapByPoints
public static final int WrapByPointsSpecifies 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:
-
WrapNone
public static final int WrapNoneSpecifies 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:
-
WrapTopBottom
public static final int WrapTopBottomSpecifies a wrapping rule that is undefined and MUST be ignored.- See Also:
-
WrapThrough
public static final int WrapThroughSpecifies a wrapping rule that is undefined and MUST be ignored.- See Also:
-
-
Constructor Details
-
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
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 Details
-
setDefaultTextProperties
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
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
-
resizeToFitText
Description copied from interface:TextShapeAdjust the size of the shape so it encompasses the text inside it.- Specified by:
resizeToFitTextin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- a
Rectangle2Dthat is the bounds of this shape.
-
resizeToFitText
Description copied from interface:TextShapeAdjust the size of the shape so it encompasses the text inside it.- Specified by:
resizeToFitTextin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
graphics- a customized graphics context, e.g. which contains font mappings- Returns:
- a
Rectangle2Dthat is the bounds of this shape.
-
getRunType
public int getRunType()Returns the type of the text, from the TextHeaderAtom. Possible values can be seen from TextHeaderAtom- See Also:
-
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:
-
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()Description copied from interface:TextShapeReturns if the text is centered. If true and if the individual paragraph settings allow it, the whole text block will be displayed centered, i.e. its left and right margin will be maximized while still keeping the alignment of the paragraphs- Specified by:
isHorizontalCenteredin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- true, if the text anchor is horizontal centered
-
setHorizontalCentered
Description copied from interface:TextShapeSets if the paragraphs are horizontal centered- Specified by:
setHorizontalCenteredin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
isCentered- true, if the paragraphs are horizontal centered Anullvalues unsets this property.
-
getVerticalAlignment
Description copied from interface:TextShapeReturns the type of vertical alignment for the text.- Specified by:
getVerticalAlignmentin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- the type of vertical alignment
-
setVerticalAlignment
Description copied from interface:TextShapeSets the type of vertical alignment for the text.- Specified by:
setVerticalAlignmentin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
vAlign- - the type of alignment. Anullvalues unsets this property.
-
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:
-
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:
-
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:
-
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:
-
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:
-
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> - Returns:
- whether to wrap words within the bounding rectangle
-
setWordWrap
public void setWordWrap(boolean wrap) - Specified by:
setWordWrapin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
wrap- whether to wrap words within the bounding rectangle
-
getTextId
public int getTextId()- Returns:
- id for the text.
-
setTextId
public void setTextId(int id) Sets text ID- Parameters:
id- of the text
-
getTextParagraphs
- Specified by:
getTextParagraphsin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- the TextParagraphs for this text box
-
setSheet
Description copied from class:HSLFShapeAssign theSlideShowthis shape belongs to -
getPlaceholderAtom
ReturnOEPlaceholderAtom, the atom that describes a placeholder.- Returns:
OEPlaceholderAtomornullif not found
-
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()Description copied from interface:SimpleShapeChecks if the shape is a placeholder. (placeholders aren't normal shapes, they are visible only in the Edit Master mode)- Specified by:
isPlaceholderin interfaceSimpleShape<HSLFShape,HSLFTextParagraph> - Overrides:
isPlaceholderin classHSLFSimpleShape- Returns:
trueif the shape is a placeholder
-
iterator
- Specified by:
iteratorin interfaceIterable<HSLFTextParagraph>
-
getInsets
- Specified by:
getInsetsin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- text shape margin
-
setInsets
Description copied from interface:TextShapeSets the shape margins- Specified by:
setInsetsin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
insets- the new shape margins
-
getTextHeight
public double getTextHeight()Description copied from interface:TextShapeCompute the cumulative height occupied by the text- Specified by:
getTextHeightin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- the cumulative height occupied by the text
-
getTextHeight
Description copied from interface:TextShapeCompute the cumulative height occupied by the text- Specified by:
getTextHeightin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
graphics- a customized graphics context, e.g. which contains font mappings- Returns:
- the cumulative height occupied by the text
-
getTextDirection
- Specified by:
getTextDirectionin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- vertical orientation of the text
-
setTextDirection
Description copied from interface:TextShapesets the vertical orientation- Specified by:
setTextDirectionin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
orientation- vertical orientation of the text
-
getTextRotation
Description copied from interface:TextShapeThe text rotation can be independent specified from the shape rotation. For XSLF this can be an arbitrary degree, for HSLF the degree is given in steps of 90 degrees- Specified by:
getTextRotationin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- text rotation in degrees, returns null if no rotation is given
-
setTextRotation
Description copied from interface:TextShapeSets the text rotation. For XSLF this can ben an arbitrary degree, for HSLF the rotation is rounded to next 90 degree step- Specified by:
setTextRotationin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
rotation- the text rotation, or null to unset the rotation
-
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
Description copied from interface:TextShapeReturns the text contained in this text frame, which has been made safe for printing and other use.- Specified by:
getTextin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- the text string for this textbox.
-
appendText
Description copied from interface:TextShapeAdds the supplied text onto the end of the TextParagraphs, creating a new RichTextRun for it to sit in.- Specified by:
appendTextin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
text- the text string to be appended.newParagraph- if true, a new paragraph will be added, which will contain the added text
-
setText
Description copied from interface:TextShapeSets (overwrites) the current text. Uses the properties of the first paragraph / textrun. Text paragraphs are split by \\r or \\n. New lines within text run are split by \\u000b- Specified by:
setTextin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Parameters:
text- the text string used by this object.- Returns:
- the last text run of the - potential split - text
-
storeText
protected void storeText()Saves the modified paragraphs/textrun to the records. Also updates the styles to the correct text length. -
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
Description copied from interface:TextShapeSets the text placeholder- Specified by:
setTextPlaceholderin interfaceTextShape<HSLFShape,HSLFTextParagraph>
-
getTextPlaceholder
- Specified by:
getTextPlaceholderin interfaceTextShape<HSLFShape,HSLFTextParagraph> - Returns:
- the text placeholder
-
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
-