1
package org.hisp.dhis.importexport.pdf.exporter;
4
* Copyright (c) 2004-2007, University of Oslo
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* * Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
* * Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
* * Neither the name of the HISP project nor the names of its contributors may
15
* be used to endorse or promote products derived from this software without
16
* specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
import java.io.OutputStream;
32
import org.hisp.dhis.importexport.ExportParams;
33
import org.hisp.dhis.importexport.PDFConverter;
34
import org.hisp.dhis.importexport.pdf.util.PDFPrintUtil;
35
import org.hisp.dhis.system.util.PDFUtils;
36
import org.hisp.dhis.system.util.StreamUtils;
38
import com.lowagie.text.Document;
41
* @author Lars Helge Overland
42
* @version $Id: PDFPipeThread.java 4646 2008-02-26 14:54:29Z larshelg $
44
public class PDFPipeThread
47
private OutputStream outputStream;
49
public void setOutputStream( OutputStream outputStream )
51
this.outputStream = outputStream;
54
private ExportParams exportParams;
56
public void setExportParams( ExportParams exportParams )
58
this.exportParams = exportParams;
61
private PDFConverter dataElementConverter;
63
public void setDataElementConverter( PDFConverter dataElementConverter )
65
this.dataElementConverter = dataElementConverter;
68
private PDFConverter indicatorConverter;
70
public void setIndicatorConverter( PDFConverter indicatorConverter )
72
this.indicatorConverter = indicatorConverter;
75
private PDFConverter extendedDataElementConverter;
77
public void setExtendedDataElementConverter( PDFConverter extendedDataElementConverter )
79
this.extendedDataElementConverter = extendedDataElementConverter;
82
private PDFConverter organisationUnitHierarchyConverter;
84
public void setOrganisationUnitHierarchyConverter( PDFConverter organisationUnitHierarchyConverter )
86
this.organisationUnitHierarchyConverter = organisationUnitHierarchyConverter;
89
private PDFConverter organisationUnitConverter;
91
public void setOrganisationUnitConverter( PDFConverter organisationUnitConverter )
93
this.organisationUnitConverter = organisationUnitConverter;
96
// -------------------------------------------------------------------------
97
// Thread implementation
98
// -------------------------------------------------------------------------
102
Document document = null;
106
document = PDFUtils.openDocument( outputStream );
108
PDFPrintUtil.printDocumentFrontPage( document, exportParams );
110
if ( exportParams.isExtendedMode() )
112
extendedDataElementConverter.write( document, exportParams );
116
dataElementConverter.write( document, exportParams );
119
indicatorConverter.write( document, exportParams );
121
organisationUnitHierarchyConverter.write( document, exportParams );
123
organisationUnitConverter.write( document, exportParams );
125
PDFUtils.closeDocument( document );
129
StreamUtils.closeOutputStream( outputStream );