br.com.caelum.stella.boleto.transformer.GeradorDeBoletoHTML Maven / Gradle / Ivy
package br.com.caelum.stella.boleto.transformer;
import java.io.File;
import java.io.InputStream;
import java.io.Writer;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;
import br.com.caelum.stella.boleto.Boleto;
import br.com.caelum.stella.boleto.exception.GeracaoBoletoException;
/**
* Gerador de boletos em HTML
*
* @author Mario Amaral Github
*
*/
@SuppressWarnings("deprecation")
public class GeradorDeBoletoHTML extends GeradorDeBoleto {
private JRHtmlExporter exporter = new JRHtmlExporter();
{
exporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING, "ISO-8859-1");
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.ZOOM_RATIO, 1.3F);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "stella-boleto?image=");
exporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING, "ISO-8859-1");
}
/**
* Contrói um gerador de boletos com o template padrão.
*
* @param boletos boleto a serem gerados.
*/
public GeradorDeBoletoHTML(Boleto... boletos) {
super(boletos);
}
/**
* Cria um gerador de boletos que usa um template customizado.
*
* @param template o template (.jasper) a ser usado (obrigatório).
* @param parametros parametros extras para o relatório( opcional).
* @param boletos boletos.
*/
public GeradorDeBoletoHTML(InputStream template, Map parametros, Boleto... boletos) {
super(template, parametros, boletos);
}
/**
* Seta propriedades para o gerador de html do jasper.
*
* @param parameter propriedade aser setada.
* @param value valor da propriedade.
*/
public void setJasperParameter(JRExporterParameter parameter, Object value){
exporter.setParameter(parameter, value);
}
/**
* Gera um boleto em HTML, e grava no caminho informado.
*
* @param arquivo caminho do arquivo.
*/
public void geraHTML(String arquivo) {
try {
JasperExportManager.exportReportToHtmlFile(geraRelatorio(), arquivo);
} catch (JRException e) {
throw new GeracaoBoletoException(e);
}
}
/**
* Gera um boleto em HTML, e grava no caminho informado.
*
* @param arquivo caminho do arquivo.
*/
public void geraHTML(File arquivo) {
geraHTML(arquivo.getAbsolutePath());
}
/**
* Gera o boleto no formato HTML, e escreve o conteúdo do HTML no Writer informado.
*
* @param writer local para gravação do arquivo
* @param request requisição
*/
public void geraHTML(Writer writer, HttpServletRequest request) {
try {
JRHtmlExporter exporter = getHtmlExporter(request);
exporter.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER, writer);
exporter.exportReport();
} catch (JRException e) {
throw new GeracaoBoletoException(e);
}
}
/**
* Obtém o JRExporter para HTML.
*
* @param request requisição.
* @return exporter do Jasper configurado.
*/
protected JRHtmlExporter getHtmlExporter(HttpServletRequest request) {
JasperPrint relatorio = geraRelatorio();
exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT, relatorio);
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, relatorio);
return exporter;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy