Working with Text Boxes
Format Text in the Visio Shape’s Text Block Section
Aspose.Diagram API allows developers to control the text direction, alignment, margins, background color, background color transparency, and default tab stop position of text in a shape’s text block. They can interact with these properties programmatically using Aspose.Diagram for .NET.
Set the direction, alignment, margins, background color, transparency, and default tab stop position of the text in a Shape’s Text Block
The text block format section of the Visio shapesheet contains the formatting information. The Shape class offers TextBlock property to get or set the visual appearance of the shape’s text.
Format Text Programming Sample
The following piece of code sets direction, alignment, margins, background color, background color transparency, and default tab stop position of the orientation angle and position of the shape’s text at the top.
// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_ShapeTextBoxData(); | |
// Load source Visio diagram | |
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx"); | |
// Get the page by its name | |
Aspose.Diagram.Page page1 = diagram.Pages.GetPage("Page-1"); | |
// Get shape by its ID | |
Aspose.Diagram.Shape shape = page1.Shapes.GetShape(1); | |
// Set orientation angle | |
DoubleValue margin = new DoubleValue(4, MeasureConst.PT); | |
// Set left, right, top and bottom margins of the shape's text block | |
shape.TextBlock.LeftMargin = margin; | |
shape.TextBlock.RightMargin = margin; | |
shape.TextBlock.TopMargin = margin; | |
shape.TextBlock.BottomMargin = margin; | |
// Set the text direction | |
shape.TextBlock.TextDirection.Value = TextDirectionValue.Vertical; | |
// Set the text alignment | |
shape.TextBlock.VerticalAlign.Value = VerticalAlignValue.Middle; | |
// Set the text block background color | |
shape.TextBlock.TextBkgnd.Ufe.F = "RGB(95,108,53)"; | |
// Set the background color transparency in percent | |
shape.TextBlock.TextBkgndTrans.Value = 50; | |
// Set the distance between default tab stops for the selected shape. | |
shape.TextBlock.DefaultTabStop.Value = 2; | |
// Save Visio | |
diagram.Save(dataDir + "FormatShapeTextBlockSection_out.vsdx", SaveFileFormat.VSDX); |
Rotate and Set Position of the Visio Shape Text
Aspose.Diagram API allows developers to adjust the text position and also rotate text on the Visio Shape. To accomplish this task, the text transforms section on the shapesheet provides TxtPin, TxtLocPin, TxtWidth and TxtHeight properties. Developers can interact with these properties programmatically using Aspose.Diagram for .NET.
Rotate and Set Position of the Shape Text
The text transforms section contains the positional information about a shape’s text block. Below examples show how to adjust shape text positions and orientation angle.
Set shape’s text position at the top
The following piece of code sets orientation angle and position of the shape’s text at the top.
// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_ShapeTextBoxData(); | |
// Load source Visio diagram | |
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx"); | |
// Get shape | |
long shapeid = 1; | |
Shape shape = diagram.Pages.GetPage("Page-1").Shapes.GetShape(shapeid); | |
// Set text position at the top, | |
// TxtLocPinY = "TxtHeight*0" and TxtPinY = "Height*1" | |
shape.TextXForm.TxtLocPinY.Value = 0; | |
shape.TextXForm.TxtPinY.Value = shape.XForm.Height.Value; | |
// Set orientation angle | |
double angleDeg = 0; | |
double angleRad = (Math.PI / 180) * angleDeg; | |
shape.TextXForm.TxtAngle.Value = angleRad; | |
// Save Visio diagram in the local storage | |
diagram.Save(dataDir + "SetShapeTextPositionAtTop_out.vsdx", SaveFileFormat.VSDX); |
Set shape’s text position at the bottom
The following piece of code sets orientation angle and position of the shape’s text at the bottom.
// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_ShapeTextBoxData(); | |
// Load source Visio diagram | |
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx"); | |
// Get shape | |
long shapeid = 1; | |
Shape shape = diagram.Pages.GetPage("Page-1").Shapes.GetShape(shapeid); | |
// Set text position at the bottom, | |
// TxtLocPinY = "TxtHeight*1" and TxtPinY = "Height*0" | |
shape.TextXForm.TxtLocPinY.Value = shape.TextXForm.TxtHeight.Value; | |
shape.TextXForm.TxtPinY.Value = 0; | |
// Set orientation angle | |
double angleDeg = 0; | |
double angleRad = (Math.PI / 180) * angleDeg; | |
shape.TextXForm.TxtAngle.Value = angleRad; | |
// Save Visio diagram in the local storage | |
diagram.Save(dataDir + "SetShapeTextPositionAtBottom_out.vsdx", SaveFileFormat.VSDX); |
Set shape’s text position at the left
The following piece of code sets orientation angle and position of the shape’s text at the left.
// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_ShapeTextBoxData(); | |
// Load source Visio diagram | |
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx"); | |
// Get shape | |
long shapeid = 1; | |
Shape shape = diagram.Pages.GetPage("Page-1").Shapes.GetShape(shapeid); | |
// Set text position at the left, | |
// TxtLocPinX = "TxtWidth*1" and TxtPinX = "Width*0" | |
shape.TextXForm.TxtLocPinX.Value = shape.TextXForm.TxtWidth.Value; | |
shape.TextXForm.TxtPinX.Value = 0; | |
// Set orientation angle | |
double angleDeg = 0; | |
double angleRad = (Math.PI / 180) * angleDeg; | |
shape.TextXForm.TxtAngle.Value = angleRad; | |
// Save Visio diagram in the local storage | |
diagram.Save(dataDir + "SetShapeTextPositionAtLeft_out.vsdx", SaveFileFormat.VSDX); |
Set shape’s text position at the right
The following piece of code sets orientation angle and position of the shape’s text at the right.
// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_ShapeTextBoxData(); | |
// Load source Visio diagram | |
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx"); | |
// Get shape | |
long shapeid = 1; | |
Shape shape = diagram.Pages.GetPage("Page-1").Shapes.GetShape(shapeid); | |
// Set text position at the right, | |
// TxtLocPinX = "TxtWidth*0" and TxtPinX = "Width*1" | |
shape.TextXForm.TxtLocPinX.Value = 0; | |
shape.TextXForm.TxtPinX.Value = shape.XForm.Width.Value; | |
// Set orientation angle | |
double angleDeg = 0; | |
double angleRad = (Math.PI / 180) * angleDeg; | |
shape.TextXForm.TxtAngle.Value = angleRad; | |
// Save Visio diagram in the local storage | |
diagram.Save(dataDir + "SetShapeTextPositionAtRight_out.vsdx", SaveFileFormat.VSDX); |