I have looked at a number of forum posts, and I have tried the following code.
ncShapes = documentWord.GetChildNodes(NodeType.Shape, True)
For Each shapeNode As Shape In ncShapes
shapeNode.HorizontalAlignment = HorizontalAlignment.Center
shapeNode.ParentParagraph.ParagraphFormat.Alignment = ParagraphAlignment.Center
Next
But the Html element that results for the TextBox is never centered. It always ends up with some other alignment specification that seems to depend on the Wrapping Style of the TextBox in the original Word document. In some cases it creates the element with a float: left; alignment, in other cases a position: absolute; zorder: 0; alignment, and so on, but never centered.
How do you center a TextBox in the output Html? We are using version 11.11.0.0 (v2.0.50727). Thanks.
Hi John,
Thanks for your inquiry. Could you please attach your input Word document and your target HTML document showing the desired behaviour here for testing? I will investigate the issue on my side and provide you more information.
Best regards,
Thank you for your response. Below is the code for the actual method we are using to perform the conversion. Attached are the Word document, the Aspose Html that results from the code below, and a possible Html we expected to get. You will notice that the element you create in the Aspose.html file has a style attribute with float:left specified, and its parent
element has a style attribute with text-align:justify specified. Since we changed those using your API in the code below, we instead expected to get something like a text-align:center (or something that would center the resulting image) specified for the style attributes in the and
elements.
Private Function ConvertWordDocumentToHtml(ByVal documentWord As Aspose.Words.Document) As String
Dim mStream As MemoryStream Dim hsOptions As HtmlSaveOptions
Dim ncShapes As NodeCollection
Dim sReader As StreamReader
Try
mStream = New MemoryStream()
hsOptions = New HtmlSaveOptions()
With (hsOptions)
.ExportImagesAsBase64 = False
.ExportHeadersFootersMode = ExportHeadersFootersMode.None
.ImagesFolder = MapPath("~/Images/Uploaded/")
.SaveFormat = SaveFormat.Html
End With
ncShapes = documentWord.GetChildNodes(NodeType.Shape, True)
For Each shapeNode As Shape In ncShapes
shapeNode.HorizontalAlignment = HorizontalAlignment.Center
If (Not IsNothing(shapeNode.ParentParagraph)) Then
shapeNode.ParentParagraph.ParagraphFormat.Alignment = ParagraphAlignment.Center
End If
Next
documentWord.Save(mStream, hsOptions)
mStream.Position = 0
sReader = New StreamReader(mStream)
Return sReader.ReadToEnd()
Catch ex As Exception
Return String.Empty
End Try
End Function
Hi John,
Thanks for your inquiry. Here is the sample code to achieve the desired image position in HTML:
Dim doc As New Document("C:\Temp\Economia & Politica 2012-08-09.doc")
Dim targetShape As Shape = TryCast(doc.GetChildNodes(NodeType.Shape, True)(3), Shape)
targetShape.ParentParagraph.ParagraphFormat.Alignment = ParagraphAlignment.Center
targetShape.WrapType = WrapType.Inline
doc.Save("C:\Temp\out.html")
I hope, this helps.
Best regards,
Adding the following line from your code above to our method is what makes it work.
targetShape.WrapType = WrapType.Inline
Now the TextBox is centered in the output Html. Thank you for your help.
Hi John,
Thanks for your feedback on this. Please let us know any time you have any further queries. We are always glad to help you.
Best regards,