Word - Text Box Internal Margin

Hi,
We are attempting to manipulate a word document using Aspose.Words which requires the ability to programmatically inspect the values of the internal margins set on a text box.

A quick look at the document’s xml suggests that these two values map to the mso-wrap-distance-left mso-wrap-distance-right properties found in the shape tag.

Is there any way to access these values using Aspose.Words?

Hi Robert,

Thanks for your inquiry. The TextBox class defines attributes that specify how a text is displayed inside a shape. You can use the TextBox property to access text properties of a shape. Pleas read the members of TextBox class like InternalMarginXXX from here:
https://reference.aspose.com/words/net/aspose.words.drawing/textbox/

Following code example creates a textbox with some text and different formatting options in a new document. Hope this helps you.

// Create a blank document.
Document doc = new Document();
// Create a new shape of type TextBox
Shape textBox = new Shape(doc, ShapeType.TextBox);
// Set some settings of the textbox itself.
// Set the wrap of the textbox to inline
textBox.WrapType = WrapType.None;
// Set the horizontal and vertical alignment of the text inside the shape.
textBox.HorizontalAlignment = Aspose.Words.Drawing.HorizontalAlignment.Center;
textBox.VerticalAlignment = VerticalAlignment.Top;
// Set the textbox height and width.
textBox.Height = 50;
textBox.Width = 200;
textBox.TextBox.InternalMarginLeft = 0.0;
textBox.TextBox.InternalMarginTop = 0.0;
// Set the textbox in front of other shapes with a lower ZOrder
textBox.ZOrder = 2;
// Let’s create a new paragraph for the textbox manually and align it in the center. Make sure we add the new nodes to the textbox as well.
textBox.AppendChild(new Paragraph(doc));
Paragraph para = textBox.FirstParagraph;
para.ParagraphFormat.Alignment = ParagraphAlignment.Left;
// Add some text to the paragraph.
Run run = new Run(doc);
run.Text = "Content in textbox";
para.AppendChild(run);
// Append the textbox to the first paragraph in the body.
doc.FirstSection.Body.FirstParagraph.AppendChild(textBox);
// Save the output
doc.Save(MyDir + "Shape.CreateTextBox Out.doc");

If this does not help you, please manually create your expected Word document using Microsoft Word and attach it here for our reference. We will then provide you more information along with code.