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 RTF 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 ConvertRTF extends Convert {
48
49 /***
50 * Convert a <code>p_cv</code> CvModel to a RTF <code>p_file</code>
51 * file.
52 *
53 * @param p_cv
54 * CVModel object
55 * @param p_file
56 * file, will be written/overwritten
57 * @throws XmlCVException
58 */
59 public ConvertRTF(CVModel p_cv, File p_file) throws XmlCVException {
60 super(new StreamSource(p_cv.getInputStream()), p_file);
61 this.go();
62 }
63
64 public void go() {
65
66 Driver fop = new Driver();
67
68 fop.setRenderer(Driver.RENDER_TXT);
69
70 try {
71 setXslt(Config.STYLES_XSL_FO);
72 setupTransformer();
73
74 fop.setOutputStream(this._doneStream);
75
76
77
78 SAXResult res = new SAXResult(fop.getContentHandler());
79
80
81 this._transformer.transform(this._srcXml, res);
82 } catch (TransformerException e) {
83 e.printStackTrace();
84 } finally {
85 try {
86 this._doneStream.close();
87 } catch (IOException e1) {
88 e1.printStackTrace();
89 }
90 }
91 }
92
93 public static void main(String[] args) throws XmlCVException {
94 if (args.length != 2) {
95 System.out.println(I18n.getString("Convert.WrongParameters"));
96 System.out.println(I18n.getString("ConvertRTF.Usage"));
97 } else {
98 CVModel cv = new CVModel(args[0]);
99 new ConvertRTF(cv, new File(args[1]));
100 }
101 }
102
103 }