bonjour,

j'ai une classe qui compile des transforme des XML en PDF, XHTML via des XSLT.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.datalion.exogema;
 
import java.io.File;
 
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
 
import java.io.IOException;
import java.io.OutputStream;
import javax.xml.transform.TransformerException;
import javax.xml.transform.Source;
import javax.xml.transform.Result;
import javax.xml.transform.sax.SAXResult;
import org.apache.avalon.framework.ExceptionUtil;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
import org.apache.fop.apps.FOPException;
 
public class StylesheetTransformer 
{
	private TransformerFactory factory;
	public static void main(String args[]) throws FOPException, IOException, TransformerException
	{
		StylesheetTransformer styl = new StylesheetTransformer();
		styl.convert("PDF", "src/com/datalion/exogema/xml/stylesheet.xsl", "src/com/datalion/exogema/xml/enquiry.xml", 
				System.getenv("java.io.tmp"));
 
	}
	public StylesheetTransformer()
	{
		this.factory = TransformerFactory.newInstance();
	}
	/** Convert a XML file to other file(s) using XSL
         * @param Type of conversion (PDF/XHTML)
         * @param The URL of XSL stylesheet
         * @param The path of XML file
         * @param The output file
         * @throws TransformerException 
         * @throws IOException 
         * @throws FOPException 
         */
	public void convert(String type, String xsl, String xml, String outputFile) throws FOPException, IOException, TransformerException
	{
		if(type.equals("XHTML"))
		{
			this.convertInXHTML(xsl,xml,outputFile);
		}
		if(type.equals("PDF"))
		{
			this.toPDF(new File(xml),new File(xsl),new File(outputFile));
		}
	}
	public void convertInXHTML (String path2xsl, String path2xml, String outputFile)
	{
		try
		{
		      Transformer transformer = this.factory.newTransformer(new StreamSource(path2xsl));
		      transformer.transform(new StreamSource(path2xml), new StreamResult(outputFile));
 
		 }
		 catch (Exception e)
		 {
			 e.getCause();
		 }
	}
	public void toPDF(File xml, File xslt, File pdf)
		throws IOException, FOPException, TransformerException {
		 //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 = new java.io.FileOutputStream(pdf);
		 try {
		 driver.setOutputStream(out);
 
		 //Setup XSLT
		 Transformer transformer = this.factory.newTransformer(new StreamSource(xslt));
 
		 //Setup input for XSLT transformation
		 Source src = new StreamSource(xml);
 
		 //Resulting SAX events (the generated FO) must be piped through to FOP
		 Result res = new SAXResult(driver.getContentHandler());
 
		 //Start XSLT transformation and FOP processing
		 transformer.transform(src, res);
		 } finally {
		 out.close();
		}
		 }
}
mais voila je n'arrive pas à charge la classe driver, elle ne semble paêtre dans le jar de fop.

quelqu'un a til rencontré le même problème que moi ?