We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Table cell size when table within table cell

Hi,

I am trying to reproduce the table below in Aspose.Words 6.0.0.0 It must appear in a TextBox and may have paragraphs of text before/after in the TextBox. I tried to create this by creating a table inside a table. The outer table has a red cell border. The inner table only puts a blue border around the first cell.

1,1 1,2
2,1 2,2

I am having a few issues at the moment. My code is attached. I have used multiple document builders to render the tables in an attempt to stop them interfering with each other.

  1. When I set a cell to have a blue border, every cell after this is blue.
  2. When I add a table inside another table's cell, every cell in that table is the same width as the original cell. I am trying to get the entire inner table the width of the original cell.
  3. When there is an inner table, half doesn't appear. Even when I expand the TextBox it cannot be seen.
  4. The border of the outer cell is not displayed when there is an inner table.

Thank you for your time. Any guidance would be appreciated.

Hi<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Thanks for your request. Could you please create such table using MS Word and attach the document here. This will help me to create sample code for you.

Best regards.

Hi,

Thanks for your quick reply. I have created the table in the attached word doc.

Hi<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Thank you for additional information. Please try using the following code:

//Create Document and DocumentBuilder

Document doc = new Document();

DocumentBuilder builder = new DocumentBuilder(doc);

//Create TextBox shape and insert it into the document

Shape textBox = new Shape(doc, ShapeType.TextBox);

//Specify size of text box

textBox.Height = 125;

textBox.Width = 200;

//Create paragraph and insert it into the textbox

Paragraph par = new Paragraph(doc);

textBox.AppendChild(par);

//Insert textbox into the document

doc.FirstSection.Body.FirstParagraph.AppendChild(textBox);

//Move DocumentBuilder cursor to paragraph inserted into the shape

builder.MoveTo(par);

//Insert some text

builder.Writeln("text before table");

//Insert empty line

builder.Writeln();

//Start table

Table t0 = builder.StartTable();

//Insert one cell into the table

builder.InsertCell();

//Specify borders formating

builder.CellFormat.Borders.LineStyle = LineStyle.Single;

builder.CellFormat.Borders.Color = Color.Red;

//Specify cell paddings

builder.CellFormat.TopPadding = 2.85;

builder.CellFormat.BottomPadding = 2.85;

builder.CellFormat.LeftPadding = 2.85;

builder.CellFormat.RightPadding = 2.85;

builder.EndRow();

builder.EndTable();

//Insert one more empty paragraph

builder.Writeln();

//and some text

builder.Write("text after table");

//Now we can build nested table.

t0.FirstRow.FirstCell.EnsureMinimum();

//Move DocumentBuilder cursor into the table

builder.MoveTo(t0.FirstRow.FirstCell.FirstParagraph);

//Build nested table

builder.InsertCell();

builder.Write("1,1");

//Specify borders formating

builder.CellFormat.Borders.Color = Color.Blue;

builder.InsertCell();

builder.Write("1,2");

//Reset borders

builder.CellFormat.Borders.LineStyle = LineStyle.None;

builder.EndRow();

builder.InsertCell();

builder.Write("2,1");

builder.InsertCell();

builder.Write("2,2");

builder.EndRow();

builder.EndTable();

doc.Save(@"Test095\out.doc");

Hope this helps.

Best regards.

Hi,

Thanks for your code. It was a great help. My sizing problem no longer occurs (in my code the second table cells were too big). I think it was something to do with the timing of when I completed the first table and also not moving the document builder when I should have.

Thanks.