Bonjour, j'utilise la version 0.20.5 de fop (j'ai pas trop le choix) et j'ai un soucis lors de la création de mon pdf.
J'utilise le code d'exemple de la version 0.20.5 de fop => ExampleXML2PDF
et dans mes log j'ai comme erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 protected void transformXsl(File source, File target, InputStream xsl) throws SaxonApiException, IOException{ //Construct driver Driver driver = new Driver(); //Setup logger Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO); driver.setLogger(logger); MessageHandler.setScreenLogger(logger); //Setup Renderer (output format) driver.setRenderer(Driver.RENDER_PDF); //Setup output OutputStream out = null; try { out = new java.io.FileOutputStream(target); try { driver.setOutputStream(out); //Setup XSLT TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(new StreamSource(xsl)); //Setup input for XSLT transformation Source src = new StreamSource(source); //Resulting SAX events (the generated FO) must be piped through to FOP Result res = new SAXResult(driver.getContentHandler()); setParameter(transformer); //Start XSLT transformation and FOP processing transformer.transform(src, res); } catch (TransformerConfigurationException e) { getLog().error(e.getMessage()); } catch (TransformerException e) { getLog().error(e.getMessage()); } }catch (FileNotFoundException e) { getLog().error(e.getMessage()); } finally { out.close(); }
Au niveau de mon xsl j'ai plus ou moins ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 [ERROR] [STDOUT] Unsupported element encountered: pbs (Namespace: <a href="http://www.bsb.com/pbs/aggregated" target="_blank">http://www.bsb.com/pbs/aggregated</a>). Source context: unavailable [STDOUT] [ERROR] [STDOUT] Expected XSL-FO (root, page-sequence, etc.), SVG (svg, rect, etc.) or elements from another supported language. [STDERR] (Emplacement inconnu de l'erreur)org.apache.fop.apps.FOPException: Root element must be root, not <a href="http://www.bsb.com/pbs/aggregated:pbs" target="_blank">http://www.bsb.com/pbs/aggregated:pbs</a> [STDERR] [error] javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: L'attribut "xpath-default-namespace" n'est pas admis sur l'élément xsl:stylesheet !
J'aimerais savoir si quelqu'un une solution ou au moins une piste a creuser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xpath-default-namespace="http://www.bsb.com/pbs/aggregated"> ... <xsl:template match="/"> <html> <head> <title>PBS</title> ... </head> <body> <div class="pbs"> <xsl:apply-templates mode="content" select="/pbs" /> </div> <xsl:if test="$displayToc"> <div id="nav"> <a href="#toc">Back to ToC</a> </div> <div id="toc" class="toc"> <a name="toc" /> <h1>Table of contents</h1> <xsl:apply-templates mode="toc" select="/pbs/lines-of-business/*" /> </div> </xsl:if> <xsl:apply-templates select="/pbs/lines-of-business/*" mode="content" /> </body> </html> </xsl:template> ...![]()
Partager