Pegar imagem jsp

0 respostas
R

Boa tarde galera td bem…

Estou com uma dúvida como pego uma imagem na jsp resultante do seguinte metódo que retorna um ByteArrayOutputStream

public ByteArrayOutputStream gerarRelatorio(ListaPaginavel listaContrato,ContratoCombinacaoBusca combinacaoBusca){

Document documento = new Document(PageSize.A4, 20, 20, 20, 20);
	ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();
	@SuppressWarnings("unused")
	PdfWriter writer = null;
	
	DefaultPieDataset dataSetTorta = new DefaultPieDataset();
	
	JFreeChart graficoFudidoTorta = ChartFactory.createPieChart("Gráfico do Relatório", dataSetTorta, true, true, false);

	List<JFreeChart> graficos = new ArrayList<JFreeChart>();

	//	graficos.add(graficoFudidoBarras);
		graficos.add(graficoFudidoTorta);
		
		PiePlot plot = (PiePlot) graficoFudidoTorta.getPlot();
		plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} ({2})"));

	
	try {
		
		String espaco = "      ";
		String quebra = "\n";
		
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy",new Locale("pt","BR"));
		
		writer = PdfWriter.getInstance(documento, pdfStream);

		documento.addTitle("Crea-RJ - Sistema Corporativo - Módulo Fiscalização");
		documento.addSubject("Crea-RJ - Sistema Corporativo - Módulo Fiscalização");
		documento.addAuthor("Crea-RJ - Sistema Corporativo - Módulo Fiscalização");

		documento.open();

		Font fonte = new Font(Font.HELVETICA, 8);
		Font fonteTitulo = new Font(Font.HELVETICA, 10);

		Phrase linhas = new Phrase("\n----------------------------------------------------------------------------------------------------------------------------------------------\n", fonteTitulo);
		
		Phrase cabecalho = new Phrase("Crea RJ\n Dados do relatório : " + "\n",fonteTitulo);
		
		documento.add(linhas);
		
		documento.add(cabecalho);
		
		documento.add(linhas);
		
		documento.add(new Phrase("Data: " + sdf.format(new Date()) + quebra + quebra,fonte));
		
		long quantidadeTotalArt = 0;
		long quantidadeTotalOficios = 0;
		BigDecimal valorTotalArts = new BigDecimal(0);
		
		for(Contrato contrato:listaContrato){	

			long qtdOficio = 0;
			if(contrato.getOficio() != null){
				qtdOficio = 1;
				quantidadeTotalOficios += qtdOficio;
			}
			
			long qtdArt = 0;
			BigDecimal valorArt = new BigDecimal(0);
			if(contrato.getContratoART() != null){
				qtdArt = 1;
				quantidadeTotalArt += qtdArt;
				valorArt = contrato.getContratoART().getValorContrato();
				valorTotalArts = valorTotalArts.add(valorArt);
			}
			
			
			if(combinacaoBusca.getTipoRelatorio().equals("2")){

				documento.add(new Phrase(quebra + "Nome do contratante: " + contrato.getInteressadoContratante().getNomeRazaoSocial(),fonte));

				documento.add(new Phrase(espaco + "Quantidade de Ofício: " + qtdOficio,fonte));

				documento.add(new Phrase(espaco + "Quantidade de Art: " + qtdArt,fonte));

				documento.add(new Phrase(espaco + "Total dos Valores das Arts: " + valorTotalArts,fonte));

				documento.add(new Phrase(espaco + "Quantidade de Multas: 1",fonte));

				documento.add(new Phrase(espaco + "Total dos Valores das Multas: 1",fonte));

			}

		if(combinacaoBusca.getTipoRelatorio().equals("1")){
			
			documento.add(new Phrase(quebra + "Quantidade de Ofício: " + qtdOficio,fonte));
			
			documento.add(new Phrase(espaco + "Quantidade de Art: "  + qtdArt,fonte));
			
			documento.add(new Phrase(espaco + "Total dos Valores das Arts: "+ valorTotalArts,fonte));
			
			documento.add(new Phrase(espaco + "Quantidade de Multas: 1",fonte));
			
			documento.add(new Phrase(espaco + "Total dos Valores das Multas: 1",fonte));
			
		}
	}	
		
		dataSetTorta.setValue("Art" , quantidadeTotalArt);
		dataSetTorta.setValue("Notificação",quantidadeTotalOficios);
		
		int largura = 500;
		int tamanho = 550;

		PdfContentByte dc = writer.getDirectContent();

		PdfTemplate tp = dc.createTemplate(tamanho, largura);

		Graphics2D g2 = tp.createGraphics(tamanho, largura, new DefaultFontMapper());
		Rectangle2D r2D = new Rectangle2D.Double(0,0, tamanho,largura);


	//	graficoFudidoBarras.draw(g2,r2D,null);
		g2.dispose();

		dc.addTemplate(tp, 20, writer.getVerticalPosition(true)- 500);
		
//		documento.newPage();
		tp = null;
		tp = dc.createTemplate(tamanho, largura);

		g2 = tp.createGraphics(tamanho, largura, new DefaultFontMapper());
		r2D = new Rectangle2D.Double(0,0, tamanho,largura);

		graficoFudidoTorta.draw(g2,r2D,null);
		g2.dispose();

//		documento.newPage();


		dc.addTemplate(tp, 20, writer.getVerticalPosition(true)- 500);
		
		documento.close();
		
		return pdfStream;

	} catch (DocumentException de){}
	
	
	return null;
}

Desde já agradeço pela atenção…

Criado 26 de agosto de 2008
Respostas 0
Participantes 1