Bonjour,
jai une methode printJasperPdf qui tranforme un fichier jasper en pdf, lors de la transformation j'utlise JasperPrint et ByteArrayOutputStream pour les gerer le flux , a la fin je retourne render(file:pdfStream?.toByteArray(), contentType: 'application/pdf')
je veux apres avoir retourner le render instancier un news fichier qui sera stocké dans l'un des repertoires du projet /targer/monDossier... par exemple
Merci
voici ma fonction
def printJasperPdf{

def dossierInstance = Dossier.get(params?.id)
//sss
ByteArrayOutputStream pdfStream
try {
String reportName, nameFile, dotJasper
nameFile = "recuDossier"
reportName = grailsApplication.mainContext.getResource('reports/' + nameFile + '.jrxml').file.getAbsoluteFile()
//on charge le fichier jasper
dotJasper = grailsApplication.mainContext.getResource('reports/' + nameFile + '.jasper').file.getAbsoluteFile()
String IMAGE_DIR = "${servletContext.getRealPath('/images')}"
IMAGE_DIR=IMAGE_DIR+"/Copie de logo_cnss.gif"
//String path1="${servletContext.getRealPath('/images')}"
// contrucution de la Map des parametres
Map<String,String> reportParam = new HashMap<String,String>()

if(dossierInstance?.tagComplet==0){
reportParam.put("fournimanq","FOURNIES")
}
if(dossierInstance?.tagComplet==1){
reportParam.put("fournimanq","MANQUANTES")
}
reportParam.put("iddossier",params?.iddos)
reportParam.put("tagdossier","and frontofficedepotpiece.'tag'=0")
reportParam.put("user",session.user.toString())
reportParam.put("tenant",session.user?.tenantId.toString())
reportParam.put("IMAGE_DIR",IMAGE_DIR)
reportParam.put("typedos",params?.typedos)
reportParam.put("pres",params.pres)
println"LISTE DES PARAMETRES===========================>> " +reportParam
// compiles jrxml
JasperCompileManager.compileReportToFile(reportName);
// remplissage du rapport en lui passant les parametres et la datasource
JasperPrint print = JasperFillManager.fillReport(dotJasper, reportParam, dataSource.getConnection());
println"inside "
// on utilise un exporter pour generer un flux binaire correspondant au format souhaitée pdf dans notre cas
pdfStream = new ByteArrayOutputStream();
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, pdfStream); // your output goes here

exporter.exportReport();

} catch (Exception e) {
println"errorsss "+e

throw new RuntimeException("Impossible de generer le fichier PDF", e);
} finally {
render(file:pdfStream?.toByteArray(), contentType: 'application/pdf')
//return pdfStream?.toByteArray()

}


}