Salvar relatório jasper no disco?

3 respostas
J

Galera, preciso de uma ajuda.

Preciso salvar o relatório pdf no disco rígido, já tenho a aplicação que gera o relatório e apresenta no bronser, mas como fazer para apenas gerar e salvar no disco sem a necessidade de apresentar no bronser.

segue código:

Map parametros = new HashMap();

parametros.put("associadoId", new Integer(associadoFromForm));

		Properties props = Resources.getResourceAsProperties("br/cisp/resources/database.properties");
		String url = props.getProperty("url");
		String driver = props.getProperty("driver");
		String username = props.getProperty("username");
		String password = props.getProperty("password");
		Class.forName(driver).newInstance();
		Connection conn = (Connection) DriverManager.getConnection(url,	username, password);

		byte[] bytes = null;

		try {
			// carrega os arquivos jasper0
			JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(context.getRealPath("/WEB-INF/reports/inconsistencia/Inconsistencia.jasper"));

			// direciona a saida do relatorio para um stream
			bytes = JasperRunManager.runReportToPdf(relatorioJasper, parametros, conn);

			if (bytes != null && bytes.length &gt 0) {
				// envia o relatório em formato PDF para o browser
				response.setContentType("application/pdf");
				response.setContentLength(bytes.length);
				ServletOutputStream ouputStream = response.getOutputStream();
				ouputStream.write(bytes, 0, bytes.length);
				ouputStream.flush();
				ouputStream.close();
				bytes = null;
				parametros = null;
			}

		} catch (JRException e) {
			e.printStackTrace();
		} finally {
			conn.close();
		}

3 Respostas

J

Para gerar somente o pdf usa:

JasperExportManager.exportReportToPdfFile("untitled_report_1.jrprint");

e retira:

bytes = JasperRunManager.runReportToPdf(relatorioJasper, parametros, conn);

if (bytes != null && bytes.length > 0) {
// envia o relatório em formato PDF para o browser
response.setContentType("application/pdf";
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
bytes = null;
parametros = null;
}
J

Mas como faço pra salvar esse relatório ?, preciso salvar um arquivo, tipo relatorio.pdf ?

U

o que vc quer dizer com salvar em disco(cliente,servidor) ?

se for no servidor:

JasperExportManager.reportExportToPdfFile(JasperPrint,"file.pdf");
Criado 5 de setembro de 2007
Ultima resposta 5 de set. de 2007
Respostas 3
Participantes 3