IMPORTANT: My answer assumes that you are aware that Evaluation Edition generates useless output containing random duplicate letters. See "About Evaluation Edition" in http://www.xmlmind.com/foconverter/downloadeval.shtml


Premysl S. wrote:

we are seriously considering buying java xfc license for server. We need to be 
able to make docx/odt file, which looks like generated pdf, from xsl-fo files 
similar to the attached one. When I use pdf converter, the result is too much 
different to generated docx. I have attached one example in zip file with all 
necessary stuff for docx/odt compilation and result pdf, odt and docx. Have you 
please any idea, how we could fix it? Or do we use any functions, your software 
doesn’t support?


I've seen nothing really wrong in test.odt (didn't look at test.docx but I guess it looks the same).

The differences you have are caused by the fact that you have only tested the XSL-FO you create against a single XSL-FO processor: Apache FOP.

Please find attached to this email xslfo.pdf, which is xslfo.txt converted to PDF but this time using RenderX XEP. Notice for example, the same problems with the page footers as with XMLmind XSL-FO Converter.



--> In practice, this means that you'll have to slightly change your doc.xslt to make it support XSL-FO processors other than Apache FOP.

This is done as follows. Excerpts from our own XSLT 2.0 stylesheets:
---
<xsl:choose>
...
<xsl:when test="$foProcessor eq 'FOP'">
   <!-- FOP does not support table-layout=auto. -->
   <xsl:attribute name="table-layout">fixed</xsl:attribute>

   <xsl:variable name="columns" select="count(./*[1]/*)"/>

   <xsl:for-each select="1 to $columns">
     <fo:table-column column-number="{.}"
                      column-width="proportional-column-width(1)"/>
   </xsl:for-each>
</xsl:when>

<xsl:otherwise>
   <xsl:attribute name="table-layout">auto</xsl:attribute>
</xsl:otherwise>
...
</xsl:choose>
---

The important line in the snippet above being
<xsl:when test="$foProcessor eq 'FOP'">

$foProcessor is a parameter you should pass to the XSLT stylesheet. Its value typically specifies the nickname (FOP, XEP, XFC, etc) of the XSL-FO processor you'll use to process the generated XSL-FO



--> After looking at your sample, I would say that solving all the discrepancies found in test.docx and test.odt should be simple and quick. Of course, for that, you'll need an XSLT programmer who will take the time to carefully read "XMLmind XSL-FO Converter - User's Guide, 5. Support of the XSL-FO v1.0 standard", http://www.xmlmind.com/foconverter/_distrib/doc/user/index.html

Example 1: in attached xslfo2.txt I have very quickly changed the tables contained in the header and in the footer (Unlike any other XSL-FO Processor, Apache FOP only support fixed table layout). This gives attached xslo2.odt, which already looks better than the test.odt you sent us.

Example 2: proprietary extensions xfc:tab-position, xfc:tab-align may be used to solve the <fo:leader> problem of the TOC. See "4.3. Leaders", http://www.xmlmind.com/foconverter/_distrib/doc/user/implementation.html#leaders



--> This being said, there are a few things our XMLmind XSL-FO Converter cannot do, for example:

1) Compute  <fo:page-number/>, <fo:page-number-citation>, etc.

As explained in this FAQ -- http://www.xmlmind.com/foconverter/faq.html#fields -- only the word processor opening the generated ODT or DOCX can do that.

2) Embed TTF fonts in the ODT or DOCX.

You can certainly reference fonts Eurostile and Roboto in the ODT or DOCX, but not embed them.








--
XMLmind FO Converter Support List
[email protected]
http://www.xmlmind.com/mailman/listinfo/xfc-support

Reply via email to