4 package eu
.etaxonomy
.cdm
.print
.out
.odf
;
7 import java
.io
.InputStream
;
9 import org
.apache
.log4j
.Logger
;
10 import org
.jdom
.Document
;
11 import org
.jdom
.transform
.XSLTransformException
;
12 import org
.odftoolkit
.odfdom
.doc
.OdfTextDocument
;
14 import eu
.etaxonomy
.cdm
.common
.IProgressMonitor
;
15 import eu
.etaxonomy
.cdm
.print
.Transformator
;
16 import eu
.etaxonomy
.cdm
.print
.out
.AbstractPublishOutputModule
;
19 * This output module will transform the given document into <a href="http://www.oasis-open.org/committees/office/">ODF</a> format for further editing in
20 * <a href="http://www.openoffice.org/">OpenOffice</a> or any other tool that understands ODF.
23 * @created Apr 20, 2010
26 public class OdfOutputModule
extends AbstractPublishOutputModule
{
27 private static final Logger logger
= Logger
28 .getLogger(OdfOutputModule
.class);
30 public static String STYLESHEET_RESOURCE_DEFAULT
= "/eu/etaxonomy/cdm/print/out/odf/cdmToOdfText.xsl";
32 private DocumentCreator documentCreator
;
33 private Transformator transformator
;
35 private InputStream stylesheet
;
37 public OdfOutputModule() {
38 stylesheet
= OdfOutputModule
.class.getResourceAsStream(STYLESHEET_RESOURCE_DEFAULT
);
39 documentCreator
= new DocumentCreator();
41 transformator
= new Transformator(stylesheet
);
43 catch (XSLTransformException e
) {
44 logger
.error("XSLTransformException while creating ODF output module", e
);
50 * @see eu.etaxonomy.printpublisher.out.IPublishOutputModule#output(org.jdom.Document, java.io.File)
52 public void output(Document document
, File exportFolder
, IProgressMonitor progressMonitor
) {
54 super.output(document
, exportFolder
, progressMonitor
);
56 Document transformedDocument
;
57 String filePath
= getFilePath(exportFolder
);
60 transformedDocument
= transformator
.transform(document
);
62 OdfTextDocument odfTextDocument
= documentCreator
.create(transformedDocument
);
64 odfTextDocument
.save(filePath
);
65 logger
.warn("ODF output written to disk: " + filePath
);
67 throw new RuntimeException(e
);
73 * @see eu.etaxonomy.printpublisher.out.IPublishOutputModule#getOutputFileSuffix()
75 public String
getOutputFileSuffix() {