Salut,
Plus d'infos nécessaires (éventuellement les lignes de code) pour te répondre. Sinon tu as ici un un bout de code pour lire un fichier .jasper et générer un array de bytes (côté serveur):
// Generating stream of compilated file
BufferedInputStream compilatedFileStream = null;
try {
// Referring the jasper file this way, one can read it from a Jar.
compilatedFileStream = new BufferedInputStream(Class.class
.getResourceAsStream("/server/jasper/BLDetSummary.jasper")); //$NON-NLS-1$
} catch (Exception e) {
MainSrvControllerImpl.getMainLogger().error(Messages.getString("GenerateReport.cannotReadJasper"), e); //$NON-NLS-1$
}
Map parameters = new HashMap();
parameters.put("param2", testPar); //$NON-NLS-1$
ByteArrayOutputStream filledFileStream = new ByteArrayOutputStream();
JasperFillManager.fillReportToStream(compilatedFileStream, filledFileStream, parameters,
new JRBeanArrayDataSource(data));
// Generating report stream
buffer = filledFileStream.toByteArray();
ByteArrayOutputStream reportFileStream = new ByteArrayOutputStream();
switch (reportType) {
case GenericReportParams.TYPE_PDF: {
JasperExportManager.exportReportToPdfStream(new ByteArrayInputStream(buffer), reportFileStream);
break;
}
case GenericReportParams.TYPE_HTML: {
JRHtmlExporter exporterHtml = new JRHtmlExporter();
exporterHtml.setParameter(JRExporterParameter.INPUT_STREAM, new ByteArrayInputStream(buffer));
exporterHtml.setParameter(JRExporterParameter.OUTPUT_STREAM, reportFileStream);
exporterHtml.exportReport();
break;
}
...
// Generating byte [] to return
buffer = reportFileStream.toByteArray();
Côté client, tu pourrais avoir qqch du genre:
// Client side : write byte[] to disk
clientSideFile = File
.createTempFile(
"DISP_" + Messages.getString("TaskFilterDialog.print_file_name") + "_" + new SimpleDateFormat("yy-MM-dd_HH_mm_ss").format(new Date()), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new String("." + taskParams.getExtensionString())); //$NON-NLS-1$
fos = new FileOutputStream(clientSideFile);
bos = new BufferedOutputStream(fos);
bos.write(reportStream);
==> ceci va créer un fichier dans le dossier %TEMP%...
hth,
++