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
