On Tue, Oct 25, 2011 at 3:48 AM, mehdi houshmand <med1...@gmail.com> wrote:
> Hi Jeff,
>
> FOP is an FO processor, as such it takes FO as input, not XML (even
> though FO is XML, XML isn't FO). You need to make sure your input is
> valid FO, then either use the -fo parameter or no parameter since it's
> the FOPs primary input.
OK, thanks (I think).

> If you were curious the -xml input is used in conjunction with an XSLT
> (thus the -xsl parameter) to transform said XML file to FO. There is
> no "default" PDF stylesheet, this mechanism is merely a helper since a
> lot of users create FO using a transform.
OK. xalan also complains about a style sheet. These style sheets seem important.

$ xalan -in book.xml
XSLT Error: Failed to process stylesheet. (line -1, column -1.)

XSLException Type is: XSLTProcessorException
Message is: Failed to process stylesheet. (Unknown URI, line -1, column -1)

> So assuming your book.xml is valid FO, the command would look like:
> $oreilly-handbook$ fop book.xml -pdf book.pdf
OK, thanks.

Out of curiosity, how do you create a PDF from a XML (DocBook) book. I
haven't had any luck with docbook2pdf, xsltproc, xalan, fop, etc. I am
amazed at how difficult the designers/architects have made this
process. Here's what the sample book looks like (the chapters are
similar):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd";>
<book>
  <title>DocBook Authoring Guidelines</title>

  <xi:include href="bookinfo.xml" xmlns:xi="http://www.w3.org/2001/XInclude"; />

  <xi:include href="ch00.xml" xmlns:xi="http://www.w3.org/2001/XInclude"; />

  <xi:include href="ch01.xml" xmlns:xi="http://www.w3.org/2001/XInclude"; />

  <xi:include href="ch02.xml" xmlns:xi="http://www.w3.org/2001/XInclude"; />

  <xi:include href="ch03.xml" xmlns:xi="http://www.w3.org/2001/XInclude"; />
</book>

Jeff

$ fop book.xml -pdf book.pdf
Oct 25, 2011 3:48:53 AM org.apache.fop.cli.Main startFOP
SEVERE: Exception
org.apache.fop.apps.FOPException:
org.apache.fop.fo.ValidationException: Error: First element must be
the fo:root formatting object. Found (Namespace URI: "", Local Name:
"book") instead. Please make sure you're producing a valid XSL-FO
document.
javax.xml.transform.TransformerException:
org.apache.fop.fo.ValidationException: Error: First element must be
the fo:root formatting object. Found (Namespace URI: "", Local Name:
"book") instead. Please make sure you're producing a valid XSL-FO
document.
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217)
        at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
        at org.apache.fop.cli.Main.startFOP(Main.java:166)
        at org.apache.fop.cli.Main.main(Main.java:197)
Caused by: javax.xml.transform.TransformerException:
org.apache.fop.fo.ValidationException: Error: First element must be
the fo:root formatting object. Found (Namespace URI: "", Local Name:
"book") instead. Please make sure you're producing a valid XSL-FO
document.
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:502)
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
        ... 3 more
Caused by: org.apache.fop.fo.ValidationException: Error: First element
must be the fo:root formatting object. Found (Namespace URI: "", Local
Name: "book") instead. Please make sure you're producing a valid
XSL-FO document.
        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:262)
        at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:163)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1073)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown 
Source)
        at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown 
Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
Source)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
        ... 4 more

---------

javax.xml.transform.TransformerException:
org.apache.fop.fo.ValidationException: Error: First element must be
the fo:root formatting object. Found (Namespace URI: "", Local Name:
"book") instead. Please make sure you're producing a valid XSL-FO
document.
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:502)
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
        at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
        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: First element
must be the fo:root formatting object. Found (Namespace URI: "", Local
Name: "book") instead. Please make sure you're producing a valid
XSL-FO document.
        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:262)
        at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:163)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1073)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown 
Source)
        at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown 
Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
Source)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
        ... 4 more
---------
org.apache.fop.fo.ValidationException: Error: First element must be
the fo:root formatting object. Found (Namespace URI: "", Local Name:
"book") instead. Please make sure you're producing a valid XSL-FO
document.
        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:262)
        at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:163)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1073)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown 
Source)
        at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown 
Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
Source)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
        at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
        at org.apache.fop.cli.Main.startFOP(Main.java:166)
        at org.apache.fop.cli.Main.main(Main.java:197)
/oreilly-handbook$

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org

Reply via email to