We are creating a document using document builder. We are adding tables from HTML and also using builder.startTable();
PROBLEM: When we user builder.startTable AFTER inserting and HTML table the new table row is added to the previously inserted HTML table which throw off the formatting.
Here is a code sample;
System.out.println("Read HTML File");
java.io.File file = new java.io.File("C:\\temp\\table.html");
System.out.println("Create File Stream");
java.io.FileInputStream fis = new java.io.FileInputStream(file);
StringBuilder inputhtml = new StringBuilder();
writeInputStream(fis, inputhtml);
com.aspose.words.Document doc = new com.aspose.words.Document();
DocumentBuilder builder = new DocumentBuilder(doc); // TODO Auto-generated method stub
builder.insertHtml(inputhtml.toString());
builder.startTable();
builder.insertCell();
//Set margin and autofit
builder.getCellFormat().setWidth(400);
builder.getRowFormat().setHeight(25);
builder.endRow();
builder.endTable();
System.out.println("Save Word Document");
doc.save("C:\\temp\\aspose_Word_Table.docx", SaveFormat.DOCX);
The html looks like this.
'<p dir="ltr"> </p>
'<table border="0" cellpadding="1" cellspacing="1" dir="ltr">
' <tbody>
' <tr>
' <td style="width: 30px; vertical-align: top;"> </td>
' <td style="width: 30px; vertical-align: top;"> </td>
' <td style="vertical-align: top;">E=3columns</td>
' </tr>
' </tbody>
'</table>
The resulting Word document looks like this;
image.png (4.7 KB)
The CREATED table is part of the inserted HTML table. I can fix it by inserting a break, but then the break adds a new line to the output which throws the spacing off.
So is this a bug or am I not coding it correctly?