Enoch K. wrote:
I have run into some issues regarding XMLMind when converting the XML:FO to 
DocX/RTF format through XMLMind, and I am hoping that there is a solution to 
remedy these issues. Since, this is an escalated issue in which one of our 
customers have brought up to us. We’d like to get this resolved as soon as 
possible. Below is the section of the XML:FO that we are sending into XMLMind 
for conversion:



<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";>

               <fo:layout-master-set>

                              <fo:simple-page-master master-name="AAA" page-height="11.0in" 
page-width="8.5in" margin-top="0in" margin-bottom="0in">

                                             <fo:region-body background-image="background_image.png" margin-bottom="1.0in" margin-right="1in" 
margin-left="1in" overflow="hidden" background-position-horizontal="center" background-position-vertical="center" 
background-repeat="no-repeat" column-gap="0.25in" column-count="1"/>

                                             <fo:region-before/>

                                             <fo:region-after/>

                                             <fo:region-start/>

                                             <fo:region-end/>

                              </fo:simple-page-master>

                              <fo:simple-page-master master-name="BBB" page-height="11.0in" 
page-width="8.5in" margin-top="0in" margin-bottom="0in">

                                             <fo:region-body background-image="some_dummy_image.png" margin-bottom="1.0in" margin-top="1.0in" 
margin-right="1in" margin-left="1in" overflow="hidden" background-position-horizontal="center" background-position-vertical="center" 
background-repeat="no-repeat" column-gap="0.25in" column-count="1"/>

                                             <fo:region-before/>

                                             <fo:region-after/>

                                             <fo:region-start/>

                                             <fo:region-end/>

                              </fo:simple-page-master>

                              <fo:simple-page-master master-name="CCC" page-height="11.0in" 
page-width="8.5in" margin-top="0in" margin-bottom="0in">

                                             <fo:region-body background-image="some_dummy_image.png" margin-bottom="1.0in" margin-right="1in" 
margin-left="1in" overflow="hidden" background-position-horizontal="center" background-position-vertical="center" 
background-repeat="no-repeat" column-gap="0.25in" column-count="1"/>

                                             <fo:region-before/>

                                             <fo:region-after/>

                                             <fo:region-start/>

                                             <fo:region-end/>

                              </fo:simple-page-master>
               </fo:layout-master-set>

               <fo:bookmark-tree/>

               <fo:page-sequence text-decoration="none" font-style="normal" font-weight="normal" line-height="100%" 
text-align="left" color="#000000" font-size="12pt" font-family="Helvetica" master-reference="AAA">

                              <fo:flow flow-name="xsl-region-body">

                                             <fo:block-container 
overflow="hidden">

                                                            <fo:block margin-right="0in" 
margin-left="0in" margin-bottom="0in" margin-top="0in">

                                                                           <fo:block 
text-align="left" line-height="12pt">test text 1</fo:block>

                                                            </fo:block>

                                             </fo:block-container>

                              </fo:flow>

               </fo:page-sequence>

               <fo:page-sequence text-decoration="none" font-style="normal" font-weight="normal" line-height="100%" 
text-align="left" color="#000000" font-size="12pt" font-family="Helvetica" master-reference="BBB">

                              <fo:flow flow-name="xsl-region-body">

                                             <fo:block-container 
overflow="hidden">

                                                            <fo:block margin-right="0in" 
margin-left="0in" margin-bottom="0in" margin-top="0in">

                                                                           <fo:block 
text-align="left" line-height="12pt">

                                                                                          <fo:inline 
font-family="Helvetica" font-size="12pt" color="#000000">test text 2</fo:inline>

                                                                           
</fo:block>

                                                            </fo:block>

                                             </fo:block-container>

                              </fo:flow>

               </fo:page-sequence>

               <fo:page-sequence text-decoration="none" font-style="normal" font-weight="normal" line-height="100%" 
text-align="left" color="#000000" font-size="12pt" font-family="Helvetica" master-reference="CCC">

                              <fo:flow flow-name="xsl-region-body">

                                             <fo:block-container 
overflow="hidden">

                                                            <fo:block margin-right="0in" 
margin-left="0in" margin-bottom="0in" margin-top="0in">

                                                                           <fo:block 
text-align="left" line-height="12pt">

                                                                                          <fo:inline 
font-family="Helvetica" font-size="12pt" color="#000000">test text 3</fo:inline>

                                                                           
</fo:block>

                                                            </fo:block>

                                             </fo:block-container>

                                             <fo:block id="lastBlockId" font-family="Helvetica" 
line-height="0pt" font-size="1pt"> </fo:block>

                              </fo:flow>

               </fo:page-sequence>

</fo:root>



As you see there are three separate simple-page-master that we are using to create 
three separate pages with different properties (header-margin & background 
images). Only the 1st simple-page-master has an actual background image, and only 
the 2nd simple-page-master has a header margin of 1 inches when other two pages 
have 0 inches. One thing to note is that we have added the “some_dummy_image.png”, 
which is a 1x1 pixel image, to prevent the first background image from repeating in 
subsequent pages since “none” option causes this issue. The result in the PDF 
output works as how we have set up, but when we preview this document in DocX or 
RTF, we are seeing the header margin for both.



The peculiar thing is that when you look at the page layouts for each page, you 
see that the top margin is 0 inches for 1st and 3rd pages and 1 inch for 2nd page. 
Yet, 1st and 3rd pages contain header margin as well. After further investigation, 
when you unzip the docx file, you see three separate xml files for header1, 
header2, and header3 referring to headers for pages 1, 2, and 3, respectively. In 
these header files, the ‘imagedata’ is being referred to rather than in the 
document.xml file, which I’m assuming where the ‘imagedata’ should be located 
since, we have defined the background image in the ‘simple-page-master’, 
specifically in the ‘region-body’. Therefore, my base question is why or what 
happens to the XMLMind that converts this XSL:FO that outputs the background image 
in the header.xml rather than in the document.xml>. Moreover, is there any way 
that we could fix this issue or a workaround.


1) Why specify the background image in the header.xml rather than in the document.xml?

ANSWER: because it's the only way to have different background images (or no background image at all) on different sections of a document.



2) How to have a background image just on my first page sequence and not on the other page sequences?

ANSWER:

* Use your 1x1 some_dummy_image.png trick.

OR

* Specify background-image="none" (or no background-image) and also specify an empty header as follows:

---
<fo:simple-page-master master-name="BBB" ...
...
               <fo:region-before extent="1.0in"/>

...


<fo:page-sequence text-decoration="none" font-style="normal" font-weight="normal" line-height="100%" text-align="left" color="#000000" font-size="12pt" font-family="Helvetica" master-reference="BBB">

                  <fo:static-content flow-name="xsl-region-before">
                    <fo:block></fo:block>
                  </fo:static-content>

                               <fo:flow flow-name="xsl-region-body">
                               ...
---



3) Why all my document sections have a 1in top margin?

ANSWER:

MS-Word wants a page to have a top margin anyway. That is, something like:

---
<fo:simple-page-master master-name="AAA" page-height="11.0in" page-width="8.5in" margin-top="0in" margin-bottom="0in">
---

cannot result in something which is honored by MS-Word.

The best you can do is specify a very small value for these margins.

---
<fo:simple-page-master master-name="AAA" page-height="11.0in" page-width="8.5in" margin-top="0.001in" margin-bottom="0.001in">
---

The result obtained this way is slightly better than before, but still not perfect.



---> In conclusion, we don't think that you have uncovered bugs we could fix. You seem to have faced very annoying limitations which are inherent to the fact that the DOCX format is way less flexible, way less "graphical", than the PDF format.

Please consider that when it comes to the above features (0-margin pages, page background images), our product, XMLmind XSL-FO Converter, implements just "a best effort".

Sorry for all these troubles.





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

Reply via email to