I am trying to generate on-the-fly PDF reports from Java objects. I have not been able to find many examples of this, so I have been following this example:
The only real difference between this code and my own is that I generate src (line 81 in the example) using JSON conversion and an XMLSerializer.
The problem I run into is using the Transformer. When I do the transform (line 87 of the example), I receive the error message:
(Location of error unknown)org.apache.fop.fo.ValidationException: First element must be the fo:root formatting object. Found (Namespace URI: "", Local Name: "html") instead. Please make sure you're producing a valid XSL-FO document.
Since I don't have visibility into the Transformer, and haven't been able to find the kind of documentation to tell me how it is supposed to work, I don't really know where the transformation is breaking down.
Any experience with this kind of conversion, or understand of whatever it is I'm missing is greatly appreciated.
The input of Apache FOP is XSL:FO. The error message is saying that the input is not a valid XSL:FO document because the first (root) element is expected to be "fo:root" but "html" was found. FOP does not read HTML input. I suggest to break down the code in smaller steps and save the intermediate documents to help you identify the problem. The steps are: