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 package org.xmlcv;
28
29 import java.io.File;
30 import java.io.IOException;
31
32 import javax.xml.transform.TransformerException;
33 import javax.xml.transform.sax.SAXResult;
34 import javax.xml.transform.stream.StreamSource;
35
36 import org.apache.fop.apps.Driver;
37 import org.xmlcv.util.Config;
38 import org.xmlcv.util.I18n;
39
40 /***
41 * Thread for PS convertion
42 *
43 * @see org.xmlcv.Convert
44 * @version $Revision: 114 $
45 * @author <a href="mailto:drazzib@drazzib.com">Damien Raude-Morvan </a>
46 */
47 public class ConvertPS extends Convert {
48
49 /***
50 * Convert a <code>p_cv</code> CvModel to a PS <code>p_file</code> file.
51 *
52 * @param p_cv
53 * CVModel object
54 * @param p_file
55 * file, will be written/overwritten
56 * @throws XmlCVException
57 */
58 public ConvertPS(CVModel p_cv, File p_file) throws XmlCVException {
59 super(new StreamSource(p_cv.getInputStream()), p_file);
60 this.go();
61 }
62
63 public void go() {
64
65 Driver fop = new Driver();
66 fop.setRenderer(Driver.RENDER_PS);
67
68 try {
69 setXslt(Config.STYLES_XSL_FO);
70 setupTransformer();
71
72 fop.setOutputStream(this._doneStream);
73
74
75
76 SAXResult res = new SAXResult(fop.getContentHandler());
77
78
79 this._transformer.transform(this._srcXml, res);
80 } catch (TransformerException e) {
81 e.printStackTrace();
82 } finally {
83 try {
84 this._doneStream.close();
85 } catch (IOException e1) {
86 e1.printStackTrace();
87 }
88 }
89 }
90
91 public static void main(String[] args) throws XmlCVException {
92 if (args.length != 2) {
93 System.out.println(I18n.getString("Convert.WrongParameters"));
94 System.out.println(I18n.getString("ConvertPS.Usage"));
95 } else {
96 CVModel cv = new CVModel(args[0]);
97 new ConvertPS(cv, new File(args[1]));
98 }
99 }
100
101 }