We have found an issue with the padding-top property used in the region-body 
object in FOP 0.94. Bear in mind we are newbies, and, while it appears from the 
W3C website this property can be used with region-body, maybe it can't. Also 
the Apache FOP Compliance Page implies full support for this property starting 
at 0.94. 

We have found this using either the command line or deployed in a war file 
(using tomcat).

If we use the padding-top property in fo:region-body, we get an error. If we 
remove it, the PDF is generated correctly.


Here is a snippet of the XSLT file (I did not include the XML file):

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:msxsl="urn:schemas-microsoft-com:xslt" 

exclude-result-prefixes="msxsl" xmlns:fo="http://www.w3.org/1999/XSL/Format";>
??? <xsl:strip-space elements="*" />
??? <xsl:variable name="borderWidthStyle">1.3px solid black</xsl:variable>
??? <xsl:variable name="labelFontStyle">bold 11pt helvetica</xsl:variable>
??? <xsl:variable name="bodyFontStyle">11pt helvetica</xsl:variable>
??? <xsl:variable name="headerBackgroundColor">#C0C0C0</xsl:variable>
??? <xsl:template match="WorkOrder">
??????? <fo:root>
??????????? <fo:layout-master-set>
??????????????? <fo:simple-page-master master-name="all-pages" 
page-width="8.5in" page-height="11in" margin-top=".2in"?? 

margin-bottom=".2in" margin-left=".5in"? margin-right=".5in">
??????????????????? <fo:region-body region-name="body" margin-top="0.2in" 
padding-top=".2in"/>
??????????????????? <fo:region-before region-name="header" text-align="center" 
extent="0.3in" display-align="before" />
??????????????????? <fo:region-after region-name="footer" text-align="center" 
extent="0.5in" display-align="before" />
??????????????? </fo:simple-page-master>
??????????? </fo:layout-master-set>
??????????? <xsl:call-template name="PageOne" />
??????????? <xsl:apply-templates select="Task" />
??????? </fo:root>
??? </xsl:template>


Here this command line:

d:\fop-0.94>fop -xsl XSLT_WorkOrderFile.xslt -xml XML_WorkOrderFile.xml -pdf 
wo.pdf -v


Here is the output:

"-d -xsl XSLT_WorkOrderFile.xslt -xml XML_WorkOrderFile.xml -pdf wo.pdf -v"
FOP Version 0.94
Jul 10, 2008 2:35:26 PM org.apache.fop.cli.Main startFOP
SEVERE: Exception
javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException:
?Error(Unknown location): For fo:simple-page-master, only one fo:region-body may
?be declared.
??????? at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:168)
??????? at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
??????? at org.apache.fop.cli.Main.startFOP(Main.java:166)
??????? at org.apache.fop.cli.Main.main(Main.java:197)

---------

javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException:
?Error(Unknown location): For fo:simple-page-master, only one fo:region-body may
?be declared.
??????? at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul
t.java:725)
??????? at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(
ElemApplyTemplates.java:425)
??????? at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla
tes.java:216)
??????? at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr
ansformerImpl.java:2339)
??????? at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Tran
sformerImpl.java:2160)
??????? at org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme
rImpl.java:1213)
??????? at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:668)
??????? at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:1129)
??????? at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp
l.java:1107)
??????? at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:165)
??????? at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
??????? at org.apache.fop.cli.Main.startFOP(Main.java:166)
??????? at org.apache.fop.cli.Main.main(Main.java:197)
Caused by: org.apache.fop.fo.ValidationException: Error(Unknown location): For f
o:simple-page-master, only one fo:region-body may be declared.
??????? at org.apache.xalan.transformer.ResultTreeHandler.flushElem(ResultTreeHa
ndler.java:870)
??????? at org.apache.xalan.transformer.ResultTreeHandler.flushPending(ResultTre
eHandler.java:954)
??????? at org.apache.xalan.transformer.ResultTreeHandler.endElement(ResultTreeH
andler.java:308)
??????? at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul
t.java:716)
??????? ... 12 more


I also ran it generating the FO file to see if there is more than one 
region-body generated. I can find only one. Snippet from the top of the FO file:


<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";>
?<fo:layout-master-set>
? <fo:simple-page-master margin-right=".5in" margin-left=".5in" 
margin-bottom=".2in" margin-top=".2in" page-height="11in" 

page-width="8.5in" master-name="all-pages">
? <fo:region-body padding-top=".2in" margin-top="0.2in" region-name="body"/>
? <fo:region-before display-align="before" extent="0.3in" text-align="center" 
region-name="header"/>
? <fo:region-after display-align="before" extent="0.5in" text-align="center" 

region-name="footer"/></fo:simple-page-master></fo:layout-master-set>
.
.
.


It's probably not a bug, just a newbie-error.

Thanks,
Pete


Reply via email to