All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.dynamicreports.jasper.transformation.ExporterTransform Maven / Gradle / Ivy

Go to download

DynamicReports is an open source Java reporting library based on JasperReports. It allows to create dynamic report designs and it doesn't need a visual report designer. You can very quickly create reports and produce documents that can be displayed, printed or exported into many popular formats such as PDF, Excel, Word and others.

There is a newer version: 6.20.1
Show newest version
/**
 * DynamicReports - Free Java reporting library for creating reports dynamically
 *
 * Copyright (C) 2010 - 2016 Ricardo Mariaca
 * http://www.dynamicreports.org
 *
 * This file is part of DynamicReports.
 *
 * DynamicReports is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * DynamicReports is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with DynamicReports. If not, see .
 */

package net.sf.dynamicreports.jasper.transformation;

import java.io.File;

import net.sf.dynamicreports.design.transformation.StyleResolver;
import net.sf.dynamicreports.jasper.definition.export.JasperICsvExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIDocxExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIExcelApiXlsExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIExcelExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIHtmlExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIOdsExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIOdtExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIPdfExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIPptxExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIRtfExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperITextExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIXhtmlExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIXlsExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIXlsxExporter;
import net.sf.dynamicreports.jasper.definition.export.JasperIXmlExporter;
import net.sf.dynamicreports.jasper.exception.JasperDesignException;
import net.sf.dynamicreports.report.base.style.DRFont;
import net.sf.dynamicreports.report.defaults.Defaults;
import net.sf.dynamicreports.report.exception.DRException;
import net.sf.jasperreports.engine.export.FileHtmlResourceHandler;
import net.sf.jasperreports.engine.export.HtmlExporter;
import net.sf.jasperreports.engine.export.HtmlResourceHandler;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRTextExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXmlExporter;
import net.sf.jasperreports.engine.export.oasis.JROdsExporter;
import net.sf.jasperreports.engine.export.oasis.JROdtExporter;
import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
import net.sf.jasperreports.engine.export.ooxml.JRPptxExporter;
import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
import net.sf.jasperreports.export.AbstractXlsExporterConfiguration;
import net.sf.jasperreports.export.AbstractXlsReportConfiguration;
import net.sf.jasperreports.export.Exporter;
import net.sf.jasperreports.export.SimpleCsvExporterConfiguration;
import net.sf.jasperreports.export.SimpleCsvReportConfiguration;
import net.sf.jasperreports.export.SimpleDocxExporterConfiguration;
import net.sf.jasperreports.export.SimpleDocxReportConfiguration;
import net.sf.jasperreports.export.SimpleExporterConfiguration;
import net.sf.jasperreports.export.SimpleHtmlExporterConfiguration;
import net.sf.jasperreports.export.SimpleHtmlExporterOutput;
import net.sf.jasperreports.export.SimpleHtmlReportConfiguration;
import net.sf.jasperreports.export.SimpleOdsExporterConfiguration;
import net.sf.jasperreports.export.SimpleOdsReportConfiguration;
import net.sf.jasperreports.export.SimpleOdtExporterConfiguration;
import net.sf.jasperreports.export.SimpleOdtReportConfiguration;
import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
import net.sf.jasperreports.export.SimplePdfExporterConfiguration;
import net.sf.jasperreports.export.SimplePdfReportConfiguration;
import net.sf.jasperreports.export.SimplePptxExporterConfiguration;
import net.sf.jasperreports.export.SimplePptxReportConfiguration;
import net.sf.jasperreports.export.SimpleReportExportConfiguration;
import net.sf.jasperreports.export.SimpleRtfExporterConfiguration;
import net.sf.jasperreports.export.SimpleRtfReportConfiguration;
import net.sf.jasperreports.export.SimpleTextExporterConfiguration;
import net.sf.jasperreports.export.SimpleTextReportConfiguration;
import net.sf.jasperreports.export.SimpleWriterExporterOutput;
import net.sf.jasperreports.export.SimpleXlsExporterConfiguration;
import net.sf.jasperreports.export.SimpleXlsReportConfiguration;
import net.sf.jasperreports.export.SimpleXlsxExporterConfiguration;
import net.sf.jasperreports.export.SimpleXlsxReportConfiguration;
import net.sf.jasperreports.export.SimpleXmlExporterOutput;
import net.sf.jasperreports.web.util.WebHtmlResourceHandler;

/**
 * @author Ricardo Mariaca ([email protected])
 */
public class ExporterTransform {
	private JasperIExporter jasperExporter;

	public ExporterTransform(JasperIExporter jasperExporter) {
		this.jasperExporter = jasperExporter;
	}

	public Exporter transform() throws DRException {
		Exporter jrExporter;

		if (jasperExporter instanceof JasperICsvExporter) {
			jrExporter = csv((JasperICsvExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIDocxExporter) {
			jrExporter = docx((JasperIDocxExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIExcelApiXlsExporter) {
			jrExporter = excelApiXls((JasperIExcelApiXlsExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIXlsExporter) {
			jrExporter = xls((JasperIXlsExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIXlsxExporter) {
			jrExporter = xlsx((JasperIXlsxExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIHtmlExporter) {
			jrExporter = html((JasperIHtmlExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIOdsExporter) {
			jrExporter = ods((JasperIOdsExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIOdtExporter) {
			jrExporter = odt((JasperIOdtExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIPdfExporter) {
			jrExporter = pdf((JasperIPdfExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIRtfExporter) {
			jrExporter = rtf((JasperIRtfExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperITextExporter) {
			jrExporter = text((JasperITextExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIXhtmlExporter) {
			jrExporter = xhtml((JasperIXhtmlExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIXmlExporter) {
			jrExporter = xml((JasperIXmlExporter) jasperExporter);
		}
		else if (jasperExporter instanceof JasperIPptxExporter) {
			jrExporter = pptx((JasperIPptxExporter) jasperExporter);
		}
		else {
			throw new JasperDesignException("Exporter " + jasperExporter.getClass().getName() + " not supported");
		}

		return jrExporter;
	}

	private SimpleWriterExporterOutput simpleWriterExporterOutput(JasperIExporter jasperExporter) {
		if (jasperExporter.getOutputWriter() != null) {
			return new SimpleWriterExporterOutput(jasperExporter.getOutputWriter());
		}
		if (jasperExporter.getOutputStream() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleWriterExporterOutput(jasperExporter.getOutputStream(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleWriterExporterOutput(jasperExporter.getOutputStream());
			}
		}
		if (jasperExporter.getOutputFile() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleWriterExporterOutput(jasperExporter.getOutputFile(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleWriterExporterOutput(jasperExporter.getOutputFile());
			}
		}
		if (jasperExporter.getOutputFileName() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleWriterExporterOutput(jasperExporter.getOutputFileName(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleWriterExporterOutput(jasperExporter.getOutputFileName());
			}
		}
		return null;
	}

	private SimpleOutputStreamExporterOutput simpleOutputStreamExporterOutput(JasperIExporter jasperExporter) {
		if (jasperExporter.getOutputStream() != null) {
			return new SimpleOutputStreamExporterOutput(jasperExporter.getOutputStream());
		}
		if (jasperExporter.getOutputFile() != null) {
			return new SimpleOutputStreamExporterOutput(jasperExporter.getOutputFile());
		}
		if (jasperExporter.getOutputFileName() != null) {
			return new SimpleOutputStreamExporterOutput(jasperExporter.getOutputFileName());
		}
		return null;
	}

	private SimpleHtmlExporterOutput simpleHtmlExporterOutput(JasperIExporter jasperExporter) {
		if (jasperExporter.getOutputWriter() != null) {
			return new SimpleHtmlExporterOutput(jasperExporter.getOutputWriter());
		}
		if (jasperExporter.getOutputStream() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleHtmlExporterOutput(jasperExporter.getOutputStream(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleHtmlExporterOutput(jasperExporter.getOutputStream());
			}
		}
		if (jasperExporter.getOutputFile() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleHtmlExporterOutput(jasperExporter.getOutputFile(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleHtmlExporterOutput(jasperExporter.getOutputFile());
			}
		}
		if (jasperExporter.getOutputFileName() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleHtmlExporterOutput(jasperExporter.getOutputFileName(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleHtmlExporterOutput(jasperExporter.getOutputFileName());
			}
		}
		return null;
	}

	private SimpleXmlExporterOutput simpleXmlExporterOutput(JasperIXmlExporter jasperExporter) {
		if (jasperExporter.getOutputWriter() != null) {
			return new SimpleXmlExporterOutput(jasperExporter.getOutputWriter());
		}
		if (jasperExporter.getOutputStream() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleXmlExporterOutput(jasperExporter.getOutputStream(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleXmlExporterOutput(jasperExporter.getOutputStream());
			}
		}
		if (jasperExporter.getOutputFile() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleXmlExporterOutput(jasperExporter.getOutputFile(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleXmlExporterOutput(jasperExporter.getOutputFile());
			}
		}
		if (jasperExporter.getOutputFileName() != null) {
			if (jasperExporter.getCharacterEncoding() != null) {
				return new SimpleXmlExporterOutput(jasperExporter.getOutputFileName(), jasperExporter.getCharacterEncoding());
			}
			else {
				return new SimpleXmlExporterOutput(jasperExporter.getOutputFileName());
			}
		}
		return null;
	}

	private void reportExportConfiguration(SimpleReportExportConfiguration reportExportConfiguration, JasperIExporter jasperExporter) {
		if (jasperExporter.getPageIndex() != null) {
			reportExportConfiguration.setPageIndex(jasperExporter.getPageIndex());
		}
		if (jasperExporter.getStartPageIndex() != null) {
			reportExportConfiguration.setStartPageIndex(jasperExporter.getStartPageIndex());
		}
		if (jasperExporter.getEndPageIndex() != null) {
			reportExportConfiguration.setEndPageIndex(jasperExporter.getEndPageIndex());
		}
		if (jasperExporter.getOffsetX() != null) {
			reportExportConfiguration.setOffsetX(jasperExporter.getOffsetX());
		}
		if (jasperExporter.getOffsetY() != null) {
			reportExportConfiguration.setOffsetY(jasperExporter.getOffsetY());
		}
	}

	private JRXmlExporter xml(JasperIXmlExporter jasperExporter) {
		SimpleXmlExporterOutput exporterOutput = simpleXmlExporterOutput(jasperExporter);
		if (jasperExporter.getEmbeddingImages() != null) {
			exporterOutput.setEmbeddingImages(jasperExporter.getEmbeddingImages());
		}
		SimpleReportExportConfiguration reportExportConfiguration = new SimpleReportExportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		SimpleExporterConfiguration exporterConfiguration = new SimpleExporterConfiguration();

		JRXmlExporter jrExporter = new JRXmlExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JRPptxExporter pptx(JasperIPptxExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		SimplePptxReportConfiguration reportExportConfiguration = new SimplePptxReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getIgnoreHyperLink() != null) {
			reportExportConfiguration.setIgnoreHyperlink(jasperExporter.getIgnoreHyperLink());
		}
		SimplePptxExporterConfiguration exporterConfiguration = new SimplePptxExporterConfiguration();

		JRPptxExporter jrExporter = new JRPptxExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JRTextExporter text(JasperITextExporter jasperExporter) {
		SimpleWriterExporterOutput exporterOutput = simpleWriterExporterOutput(jasperExporter);
		SimpleTextReportConfiguration reportExportConfiguration = new SimpleTextReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getCharacterWidth() != null) {
			reportExportConfiguration.setCharWidth(jasperExporter.getCharacterWidth());
		}
		else {
			DRFont font = Defaults.getDefaults().getFont();
			reportExportConfiguration.setCharWidth(new Float(StyleResolver.getFontWidth(font)));
		}
		if (jasperExporter.getCharacterHeight() != null) {
			reportExportConfiguration.setCharHeight(jasperExporter.getCharacterHeight());
		}
		else {
			DRFont font = Defaults.getDefaults().getFont();
			reportExportConfiguration.setCharHeight(new Float(StyleResolver.getFontHeight(font)));
		}
		if (jasperExporter.getPageWidthInChars() != null) {
			reportExportConfiguration.setPageWidthInChars(jasperExporter.getPageWidthInChars());
		}
		if (jasperExporter.getPageHeightInChars() != null) {
			reportExportConfiguration.setPageHeightInChars(jasperExporter.getPageHeightInChars());
		}
		SimpleTextExporterConfiguration exporterConfiguration = new SimpleTextExporterConfiguration();
		if (jasperExporter.getPageSeparator() != null) {
			exporterConfiguration.setPageSeparator(jasperExporter.getPageSeparator());
		}
		if (jasperExporter.getLineSeparator() != null) {
			exporterConfiguration.setLineSeparator(jasperExporter.getLineSeparator());
		}
		if (jasperExporter.getTrimLineRight() != null) {
			exporterConfiguration.setTrimLineRight(jasperExporter.getTrimLineRight());
		}

		JRTextExporter jrExporter = new JRTextExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JRRtfExporter rtf(JasperIRtfExporter jasperExporter) {
		SimpleWriterExporterOutput exporterOutput = simpleWriterExporterOutput(jasperExporter);
		SimpleRtfReportConfiguration reportExportConfiguration = new SimpleRtfReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getIgnoreHyperLink() != null) {
			reportExportConfiguration.setIgnoreHyperlink(jasperExporter.getIgnoreHyperLink());
		}
		SimpleRtfExporterConfiguration exporterConfiguration = new SimpleRtfExporterConfiguration();

		JRRtfExporter jrExporter = new JRRtfExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JRPdfExporter pdf(JasperIPdfExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		SimplePdfReportConfiguration reportExportConfiguration = new SimplePdfReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getForceSvgShapes() != null) {
			reportExportConfiguration.setForceSvgShapes(jasperExporter.getForceSvgShapes());
		}
		if (jasperExporter.getCollapseMissingBookmarkLevels() != null) {
			reportExportConfiguration.setCollapseMissingBookmarkLevels(jasperExporter.getCollapseMissingBookmarkLevels());
		}
		if (jasperExporter.getSizePageToContent() != null) {
			reportExportConfiguration.setSizePageToContent(jasperExporter.getSizePageToContent());
		}
		if (jasperExporter.getIgnoreHyperLink() != null) {
			reportExportConfiguration.setIgnoreHyperlink(jasperExporter.getIgnoreHyperLink());
		}
		if (jasperExporter.getForceLineBreakPolicy() != null) {
			reportExportConfiguration.setForceLineBreakPolicy(jasperExporter.getForceLineBreakPolicy());
		}
		SimplePdfExporterConfiguration exporterConfiguration = new SimplePdfExporterConfiguration();
		if (jasperExporter.getCreatingBatchModeBookmarks() != null) {
			exporterConfiguration.setCreatingBatchModeBookmarks(jasperExporter.getCreatingBatchModeBookmarks());
		}
		if (jasperExporter.getCompressed() != null) {
			exporterConfiguration.setCompressed(jasperExporter.getCompressed());
		}
		if (jasperExporter.getEncrypted() != null) {
			exporterConfiguration.setEncrypted(jasperExporter.getEncrypted());
		}
		if (jasperExporter.getBitKey128() != null) {
			exporterConfiguration.set128BitKey(jasperExporter.getBitKey128());
		}
		if (jasperExporter.getUserPassword() != null) {
			exporterConfiguration.setUserPassword(jasperExporter.getUserPassword());
		}
		if (jasperExporter.getOwnerPassword() != null) {
			exporterConfiguration.setOwnerPassword(jasperExporter.getOwnerPassword());
		}
		if (jasperExporter.getPermissions() != null && !jasperExporter.getPermissions().isEmpty()) {
			exporterConfiguration.setPermissions(ConstantTransform.pdfPermission(jasperExporter.getPermissions()));
		}
		if (jasperExporter.getPdfVersion() != null) {
			exporterConfiguration.setPdfVersion(ConstantTransform.pdfVersion(jasperExporter.getPdfVersion()));
		}
		if (jasperExporter.getMetadataTitle() != null) {
			exporterConfiguration.setMetadataTitle(jasperExporter.getMetadataTitle());
		}
		if (jasperExporter.getMetadataAuthor() != null) {
			exporterConfiguration.setMetadataAuthor(jasperExporter.getMetadataAuthor());
		}
		if (jasperExporter.getMetadataSubject() != null) {
			exporterConfiguration.setMetadataSubject(jasperExporter.getMetadataSubject());
		}
		if (jasperExporter.getMetadataKeyWords() != null) {
			exporterConfiguration.setMetadataKeywords(jasperExporter.getMetadataKeyWords());
		}
		if (jasperExporter.getMetadataCreator() != null) {
			exporterConfiguration.setMetadataCreator(jasperExporter.getMetadataCreator());
		}
		if (jasperExporter.getPdfJavaScript() != null) {
			exporterConfiguration.setPdfJavaScript(jasperExporter.getPdfJavaScript());
		}
		if (jasperExporter.getTagged() != null) {
			exporterConfiguration.setTagged(jasperExporter.getTagged());
		}
		if (jasperExporter.getTagLanguage() != null) {
			exporterConfiguration.setTagLanguage(jasperExporter.getTagLanguage());
		}
		if (jasperExporter.getPrintScaling() != null) {
			exporterConfiguration.setPrintScaling(ConstantTransform.pdfPrintScaling(jasperExporter.getPrintScaling()));
		}
		if (jasperExporter.getPdfaConformance() != null) {
			exporterConfiguration.setPdfaConformance(ConstantTransform.pdfaConformance(jasperExporter.getPdfaConformance()));
		}
		if (jasperExporter.getIccProfilePath() != null) {
			exporterConfiguration.setIccProfilePath(jasperExporter.getIccProfilePath());
		}
		if (jasperExporter.getAllowedPermissionsHint() != null) {
			exporterConfiguration.setAllowedPermissionsHint(jasperExporter.getAllowedPermissionsHint());
		}
		if (jasperExporter.getDeniedPermissionsHint() != null) {
			exporterConfiguration.setDeniedPermissionsHint(jasperExporter.getDeniedPermissionsHint());
		}
		if (jasperExporter.getDisplayMetadataTitle() != null) {
			exporterConfiguration.setDisplayMetadataTitle(jasperExporter.getDisplayMetadataTitle());
		}

		JRPdfExporter jrExporter = new JRPdfExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JROdtExporter odt(JasperIOdtExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		SimpleOdtReportConfiguration reportExportConfiguration = new SimpleOdtReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getFlexibleRowHeight() != null) {
			reportExportConfiguration.setFlexibleRowHeight(jasperExporter.getFlexibleRowHeight());
		}
		if (jasperExporter.getIgnoreHyperLink() != null) {
			reportExportConfiguration.setIgnoreHyperlink(jasperExporter.getIgnoreHyperLink());
		}
		SimpleOdtExporterConfiguration exporterConfiguration = new SimpleOdtExporterConfiguration();

		JROdtExporter jrExporter = new JROdtExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JROdsExporter ods(JasperIOdsExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		SimpleOdsReportConfiguration reportExportConfiguration = new SimpleOdsReportConfiguration();
		reportExcelExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getFlexibleRowHeight() != null) {
			reportExportConfiguration.setFlexibleRowHeight(jasperExporter.getFlexibleRowHeight());
		}
		SimpleOdsExporterConfiguration exporterConfiguration = new SimpleOdsExporterConfiguration();
		reportExcelExporterConfiguration(exporterConfiguration, jasperExporter);

		JROdsExporter jrExporter = new JROdsExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private HtmlExporter html(JasperIHtmlExporter jasperExporter) {
		SimpleHtmlExporterOutput exporterOutput = simpleHtmlExporterOutput(jasperExporter);
		Boolean outputImagesToDir = jasperExporter.getOutputImagesToDir();
		String imagesUri = jasperExporter.getImagesURI();
		HtmlResourceHandler imageHandler = null;
		if (outputImagesToDir == null || outputImagesToDir) {
			File imagesDir = null;
			String imagesDirName = jasperExporter.getImagesDirName();
			if (imagesDirName != null) {
				imagesDir = new File(imagesDirName);
			}
			if (imagesDir != null) {
				imageHandler = new FileHtmlResourceHandler(imagesDir, imagesUri == null ? imagesDir.getName() + "/{0}" : imagesUri + "{0}");
			}
		}
		if (imageHandler == null && imagesUri != null) {
			imageHandler = new WebHtmlResourceHandler(imagesUri + "{0}");
		}
		if (imageHandler != null) {
			exporterOutput.setImageHandler(imageHandler);
		}
		SimpleHtmlReportConfiguration reportExportConfiguration = new SimpleHtmlReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getRemoveEmptySpaceBetweenRows() != null) {
			reportExportConfiguration.setRemoveEmptySpaceBetweenRows(jasperExporter.getRemoveEmptySpaceBetweenRows());
		}
		if (jasperExporter.getWhitePageBackground() != null) {
			reportExportConfiguration.setWhitePageBackground(jasperExporter.getWhitePageBackground());
		}
		if (jasperExporter.getWrapBreakWord() != null) {
			reportExportConfiguration.setWrapBreakWord(jasperExporter.getWrapBreakWord());
		}
		if (jasperExporter.getSizeUnit() != null) {
			reportExportConfiguration.setSizeUnit(ConstantTransform.sizeUnit(jasperExporter.getSizeUnit()));
		}
		if (jasperExporter.getIgnorePageMargins() != null) {
			reportExportConfiguration.setIgnorePageMargins(jasperExporter.getIgnorePageMargins());
		}
		if (jasperExporter.getBorderCollapse() != null) {
			reportExportConfiguration.setBorderCollapse(jasperExporter.getBorderCollapse());
		}
		if (jasperExporter.getAccessibleHtml() != null) {
			reportExportConfiguration.setAccessibleHtml(jasperExporter.getAccessibleHtml());
		}
		if (jasperExporter.getZoomRatio() != null) {
			reportExportConfiguration.setZoomRatio(jasperExporter.getZoomRatio());
		}
		if (jasperExporter.getIgnoreHyperLink() != null) {
			reportExportConfiguration.setIgnoreHyperlink(jasperExporter.getIgnoreHyperLink());
		}
		SimpleHtmlExporterConfiguration exporterConfiguration = new SimpleHtmlExporterConfiguration();
		if (jasperExporter.getHtmlHeader() != null) {
			exporterConfiguration.setHtmlHeader(jasperExporter.getHtmlHeader());
		}
		if (jasperExporter.getBetweenPagesHtml() != null) {
			exporterConfiguration.setBetweenPagesHtml(jasperExporter.getBetweenPagesHtml());
		}
		if (jasperExporter.getHtmlFooter() != null) {
			exporterConfiguration.setHtmlFooter(jasperExporter.getHtmlFooter());
		}
		if (jasperExporter.getFlushOutput() != null) {
			exporterConfiguration.setFlushOutput(jasperExporter.getFlushOutput());
		}

		HtmlExporter jrExporter = new HtmlExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private HtmlExporter xhtml(JasperIXhtmlExporter jasperExporter) {
		SimpleHtmlExporterOutput exporterOutput = simpleHtmlExporterOutput(jasperExporter);
		Boolean outputImagesToDir = jasperExporter.getOutputImagesToDir();
		String imagesUri = jasperExporter.getImagesURI();
		HtmlResourceHandler imageHandler = null;
		if (outputImagesToDir == null || outputImagesToDir) {
			File imagesDir = null;
			String imagesDirName = jasperExporter.getImagesDirName();
			if (imagesDirName != null) {
				imagesDir = new File(imagesDirName);
			}
			if (imagesDir != null) {
				imageHandler = new FileHtmlResourceHandler(imagesDir, imagesUri == null ? imagesDir.getName() + "/{0}" : imagesUri + "{0}");
			}
		}
		if (imageHandler == null && imagesUri != null) {
			imageHandler = new WebHtmlResourceHandler(imagesUri + "{0}");
		}
		if (imageHandler != null) {
			exporterOutput.setImageHandler(imageHandler);
		}
		SimpleHtmlReportConfiguration reportExportConfiguration = new SimpleHtmlReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getWhitePageBackground() != null) {
			reportExportConfiguration.setWhitePageBackground(jasperExporter.getWhitePageBackground());
		}
		if (jasperExporter.getWrapBreakWord() != null) {
			reportExportConfiguration.setWrapBreakWord(jasperExporter.getWrapBreakWord());
		}
		if (jasperExporter.getSizeUnit() != null) {
			reportExportConfiguration.setSizeUnit(ConstantTransform.sizeUnit(jasperExporter.getSizeUnit()));
		}
		if (jasperExporter.getIgnorePageMargins() != null) {
			reportExportConfiguration.setIgnorePageMargins(jasperExporter.getIgnorePageMargins());
		}
		SimpleHtmlExporterConfiguration exporterConfiguration = new SimpleHtmlExporterConfiguration();
		if (jasperExporter.getHtmlHeader() != null) {
			exporterConfiguration.setHtmlHeader(jasperExporter.getHtmlHeader());
		}
		if (jasperExporter.getBetweenPagesHtml() != null) {
			exporterConfiguration.setBetweenPagesHtml(jasperExporter.getBetweenPagesHtml());
		}
		if (jasperExporter.getHtmlFooter() != null) {
			exporterConfiguration.setHtmlFooter(jasperExporter.getHtmlFooter());
		}

		HtmlExporter jrExporter = new HtmlExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private void reportExcelExportConfiguration(AbstractXlsReportConfiguration reportExportConfiguration, JasperIExcelExporter jasperExporter) {
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getOnePagePerSheet() != null) {
			reportExportConfiguration.setOnePagePerSheet(jasperExporter.getOnePagePerSheet());
		}
		if (jasperExporter.getRemoveEmptySpaceBetweenRows() != null) {
			reportExportConfiguration.setRemoveEmptySpaceBetweenRows(jasperExporter.getRemoveEmptySpaceBetweenRows());
		}
		if (jasperExporter.getRemoveEmptySpaceBetweenColumns() != null) {
			reportExportConfiguration.setRemoveEmptySpaceBetweenColumns(jasperExporter.getRemoveEmptySpaceBetweenColumns());
		}
		if (jasperExporter.getWhitePageBackground() != null) {
			reportExportConfiguration.setWhitePageBackground(jasperExporter.getWhitePageBackground());
		}
		if (jasperExporter.getDetectCellType() != null) {
			reportExportConfiguration.setDetectCellType(jasperExporter.getDetectCellType());
		}
		if (jasperExporter.getSheetNames() != null && !jasperExporter.getSheetNames().isEmpty()) {
			String[] sheetNames = jasperExporter.getSheetNames().toArray(new String[jasperExporter.getSheetNames().size()]);
			reportExportConfiguration.setSheetNames(sheetNames);
		}
		if (jasperExporter.getFontSizeFixEnabled() != null) {
			reportExportConfiguration.setFontSizeFixEnabled(jasperExporter.getFontSizeFixEnabled());
		}
		if (jasperExporter.getImageBorderFixEnabled() != null) {
			reportExportConfiguration.setImageBorderFixEnabled(jasperExporter.getImageBorderFixEnabled());
		}
		if (jasperExporter.getMaxRowsPerSheet() != null) {
			reportExportConfiguration.setMaxRowsPerSheet(jasperExporter.getMaxRowsPerSheet());
		}
		if (jasperExporter.getIgnoreGraphics() != null) {
			reportExportConfiguration.setIgnoreGraphics(jasperExporter.getIgnoreGraphics());
		}
		if (jasperExporter.getCollapseRowSpan() != null) {
			reportExportConfiguration.setCollapseRowSpan(jasperExporter.getCollapseRowSpan());
		}
		if (jasperExporter.getIgnoreCellBorder() != null) {
			reportExportConfiguration.setIgnoreCellBorder(jasperExporter.getIgnoreCellBorder());
		}
		if (jasperExporter.getIgnoreCellBackground() != null) {
			reportExportConfiguration.setIgnoreCellBackground(jasperExporter.getIgnoreCellBackground());
		}
		if (jasperExporter.getPassword() != null) {
			reportExportConfiguration.setPassword(jasperExporter.getPassword());
		}
		if (jasperExporter.getIgnorePageMargins() != null) {
			reportExportConfiguration.setIgnorePageMargins(jasperExporter.getIgnorePageMargins());
		}
		if (jasperExporter.getWrapText() != null) {
			reportExportConfiguration.setWrapText(jasperExporter.getWrapText());
		}
		if (jasperExporter.getCellLocked() != null) {
			reportExportConfiguration.setCellLocked(jasperExporter.getCellLocked());
		}
		if (jasperExporter.getCellHidden() != null) {
			reportExportConfiguration.setCellHidden(jasperExporter.getCellHidden());
		}
		if (jasperExporter.getSheetHeaderLeft() != null) {
			reportExportConfiguration.setSheetHeaderLeft(jasperExporter.getSheetHeaderLeft());
		}
		if (jasperExporter.getSheetHeaderCenter() != null) {
			reportExportConfiguration.setSheetHeaderCenter(jasperExporter.getSheetHeaderCenter());
		}
		if (jasperExporter.getSheetHeaderRight() != null) {
			reportExportConfiguration.setSheetHeaderRight(jasperExporter.getSheetHeaderRight());
		}
		if (jasperExporter.getSheetFooterLeft() != null) {
			reportExportConfiguration.setSheetFooterLeft(jasperExporter.getSheetFooterLeft());
		}
		if (jasperExporter.getSheetFooterCenter() != null) {
			reportExportConfiguration.setSheetFooterCenter(jasperExporter.getSheetFooterCenter());
		}
		if (jasperExporter.getSheetFooterRight() != null) {
			reportExportConfiguration.setSheetFooterRight(jasperExporter.getSheetFooterRight());
		}
		if (jasperExporter.getFormatPatternsMap() != null) {
			reportExportConfiguration.setFormatPatternsMap(jasperExporter.getFormatPatternsMap());
		}
		if (jasperExporter.getIgnoreHyperLink() != null) {
			reportExportConfiguration.setIgnoreHyperlink(jasperExporter.getIgnoreHyperLink());
		}
		if (jasperExporter.getIgnoreAnchors() != null) {
			reportExportConfiguration.setIgnoreAnchors(jasperExporter.getIgnoreAnchors());
		}
		if (jasperExporter.getFitWidth() != null) {
			reportExportConfiguration.setFitWidth(jasperExporter.getFitWidth());
		}
		if (jasperExporter.getFitHeight() != null) {
			reportExportConfiguration.setFitHeight(jasperExporter.getFitHeight());
		}
		if (jasperExporter.getPageScale() != null) {
			reportExportConfiguration.setPageScale(jasperExporter.getPageScale());
		}
		if (jasperExporter.getSheetDirection() != null) {
			reportExportConfiguration.setSheetDirection(ConstantTransform.runDirection(jasperExporter.getSheetDirection()));
		}
		if (jasperExporter.getColumnWidthRatio() != null) {
			reportExportConfiguration.setColumnWidthRatio(jasperExporter.getColumnWidthRatio());
		}
		if (jasperExporter.getUseTimeZone() != null) {
			reportExportConfiguration.setUseTimeZone(jasperExporter.getUseTimeZone());
		}
		if (jasperExporter.getFirstPageNumber() != null) {
			reportExportConfiguration.setFirstPageNumber(jasperExporter.getFirstPageNumber());
		}
		if (jasperExporter.getShowGridLines() != null) {
			reportExportConfiguration.setShowGridLines(jasperExporter.getShowGridLines());
		}
		if (jasperExporter.getImageAnchorType() != null) {
			reportExportConfiguration.setImageAnchorType(ConstantTransform.imageAnchorType(jasperExporter.getImageAnchorType()));
		}
	}

	private void reportExcelExporterConfiguration(AbstractXlsExporterConfiguration exporterConfiguration, JasperIExcelExporter jasperExporter) {
		if (jasperExporter.getCreateCustomPalette() != null) {
			exporterConfiguration.setCreateCustomPalette(jasperExporter.getCreateCustomPalette());
		}
		if (jasperExporter.getWorkbookTemplate() != null) {
			exporterConfiguration.setWorkbookTemplate(jasperExporter.getWorkbookTemplate());
		}
		if (jasperExporter.getKeepWorkbookTemplateSheets() != null) {
			exporterConfiguration.setKeepWorkbookTemplateSheets(jasperExporter.getKeepWorkbookTemplateSheets());
		}
	}

	private JRXlsxExporter xlsx(JasperIXlsxExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		SimpleXlsxReportConfiguration reportExportConfiguration = new SimpleXlsxReportConfiguration();
		reportExcelExportConfiguration(reportExportConfiguration, jasperExporter);
		SimpleXlsxExporterConfiguration exporterConfiguration = new SimpleXlsxExporterConfiguration();
		reportExcelExporterConfiguration(exporterConfiguration, jasperExporter);
		if (jasperExporter.getMacroTemplate() != null) {
			exporterConfiguration.setMacroTemplate(jasperExporter.getMacroTemplate());
		}

		JRXlsxExporter jrExporter = new JRXlsxExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JRXlsExporter xls(JasperIXlsExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		SimpleXlsReportConfiguration reportExportConfiguration = new SimpleXlsReportConfiguration();
		reportExcelExportConfiguration(reportExportConfiguration, jasperExporter);
		SimpleXlsExporterConfiguration exporterConfiguration = new SimpleXlsExporterConfiguration();
		reportExcelExporterConfiguration(exporterConfiguration, jasperExporter);

		JRXlsExporter jrExporter = new JRXlsExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	@SuppressWarnings("deprecation")
	private net.sf.jasperreports.engine.export.JExcelApiExporter excelApiXls(JasperIExcelApiXlsExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		net.sf.jasperreports.export.SimpleJxlReportConfiguration reportExportConfiguration = new net.sf.jasperreports.export.SimpleJxlReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		net.sf.jasperreports.export.SimpleJxlExporterConfiguration exporterConfiguration = new net.sf.jasperreports.export.SimpleJxlExporterConfiguration();
		reportExcelExporterConfiguration(exporterConfiguration, jasperExporter);

		net.sf.jasperreports.engine.export.JExcelApiExporter jrExporter = new net.sf.jasperreports.engine.export.JExcelApiExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JRDocxExporter docx(JasperIDocxExporter jasperExporter) {
		SimpleOutputStreamExporterOutput exporterOutput = simpleOutputStreamExporterOutput(jasperExporter);
		SimpleDocxReportConfiguration reportExportConfiguration = new SimpleDocxReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		if (jasperExporter.getFramesAsNestedTables() != null) {
			reportExportConfiguration.setFramesAsNestedTables(jasperExporter.getFramesAsNestedTables());
		}
		if (jasperExporter.getFlexibleRowHeight() != null) {
			reportExportConfiguration.setFlexibleRowHeight(jasperExporter.getFlexibleRowHeight());
		}
		if (jasperExporter.getIgnoreHyperLink() != null) {
			reportExportConfiguration.setIgnoreHyperlink(jasperExporter.getIgnoreHyperLink());
		}
		SimpleDocxExporterConfiguration exporterConfiguration = new SimpleDocxExporterConfiguration();

		JRDocxExporter jrExporter = new JRDocxExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}

	private JRCsvExporter csv(JasperICsvExporter jasperExporter) {
		SimpleWriterExporterOutput exporterOutput = simpleWriterExporterOutput(jasperExporter);
		SimpleCsvReportConfiguration reportExportConfiguration = new SimpleCsvReportConfiguration();
		reportExportConfiguration(reportExportConfiguration, jasperExporter);
		SimpleCsvExporterConfiguration exporterConfiguration = new SimpleCsvExporterConfiguration();
		if (jasperExporter.getFieldDelimiter() != null) {
			exporterConfiguration.setFieldDelimiter(jasperExporter.getFieldDelimiter());
		}
		if (jasperExporter.getRecordDelimiter() != null) {
			exporterConfiguration.setRecordDelimiter(jasperExporter.getRecordDelimiter());
		}

		JRCsvExporter jrExporter = new JRCsvExporter();
		jrExporter.setExporterOutput(exporterOutput);
		jrExporter.setConfiguration(reportExportConfiguration);
		jrExporter.setConfiguration(exporterConfiguration);
		return jrExporter;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy