Embedding HTML in DOCX (4.3.1) [message #1130300] |
Wed, 09 October 2013 12:12 |
Robert Walter Messages: 29 Registered: July 2011 |
Junior Member |
|
|
Hi,
in our export, we allow to include textile files via HTML. So far, this worked well with PDF, HTML, and DOC under 4.2.2.
However, with 4.3.1 and the DOCX export, the textile file as well as other HTML-formatted text fields cause trouble.
Here is how we include textile files in a textfield in BIRT designer:
<VALUE-OF format="HTML">
importPackage( Packages.textile.util );
url = params["project"].value + row["name"]
result = Textile.getHTML( url );
</VALUE-OF>
"Textile" is a Java class in the package textile.util and provides the static method getHTML, which returns HTML code as String.
The HTML is rendered in the word file, however, the HTML just exceeds word page width, so images, tables, and text are just not fit into the page width anymore (its just as it is shown when I open the generated HTML file in Word).
Here is the generated HTML code of an example:
<h1 id="Someheader">Some header</h1><p><img style="width:50%" border="0" src="images/title.png"/></p><p class="summary">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p><table style="width:100%; border:thin solid grey"><tr><td><strong>Status</strong> </td><td>new </td><td><strong>Initial Version by</strong> </td><td>BLA </td></tr><tr><td><strong>Target readers</strong> </td><td>All stakeholders </td><td><strong>Latest edited by</strong> </td><td>BLA </td></tr><tr><td> </td><td> </td><td><strong>Next steps</strong> </td><td>Discuss about BLA, Delete BLA </td></tr></table>
See the attachment illustrating the problem.
Also, when I have a simple text field in my designer with HTML format that contains <BR>, the generated word file won't open.
I tried the DocxOption
docxRenderOption.setOption(DocxRenderOption.OPTION_EMBED_HTML, Boolean.TRUE);
with no effect.
Any suggestions?
-
Attachment: issue.png
(Size: 131.59KB, Downloaded 280 times)
|
|
|
Re: Embedding HTML in DOCX (4.3.1) [message #1131369 is a reply to message #1130300] |
Thu, 10 October 2013 13:09 |
Robert Walter Messages: 29 Registered: July 2011 |
Junior Member |
|
|
Okay, I figured that Word for some reasons ignores CSS styles. With some help I found out that I have to set the option from above to FALSE!
docxRenderOption.setOption(DocxRenderOption.OPTION_EMBED_HTML, Boolean.FALSE);
This assigns Birt to not put the HTML in the docx file but to convert it to Birt objects. Nice to know.
However, I wouldn't label the generated Birt content as "correct", since it does not translate HTML paragraphs in a way that contains line breaks.
I looked into the HTML2Content and Tag2Style classes and it seems like the <p> tag is handled with the CSS_BLOCK style. Is this correct or is the newline missing I would expect after a <p>...</p> construct in HTML?
[Updated on: Thu, 10 October 2013 13:42] Report message to a moderator
|
|
|
Powered by
FUDForum. Page generated in 0.01996 seconds