protected static byte[] exportReportToPdf(JasperPrint jasperPrint)
throws JRException {
JRPdfExporter exporter = new JRPdfExporter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT,
"this.print({bUI: true,bSilent: false,bShrinkToFit: true});");
exporter.exportReport();
return baos.toByteArray();
}
Stiamo utilizzando un codice come questo per esportare un documento PDF da un'applicazione Jasper.Stampa di esportazione PDF in Internet Explorer
La linea
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT,
"this.print({bUI: true,bSilent: false,bShrinkToFit: true});");
aggiunge JavaScript per inviare il documento PDF direttamente alla stampante.
Il comportamento previsto è che una finestra di dialogo di stampa visualizzerà un'anteprima del documento PDF.
Questo funziona bene la maggior parte del tempo - eccetto che ho problemi su uno ogni 5-6 volte in Internet Explorer 8 e Firefox.
Quello che succede è che la finestra di dialogo di anteprima di stampa con il documento PDF non appare o appare con un documento vuoto nella finestra di anteprima.
-Ho provato un certo numero di diversi JavaScript (diversi params a this.print()
via exporter.setParameter
-Ho provato a installare diverse intestazioni di risposta come
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=\""
+ reportName
+ "\"");
response.setContentLength(baos.size());
queste non sembrano aiutare
Questo sembra essere un problema di IE e FF. Qualcuno ha mai affrontato questo problema? Ho bisogno di farlo funzionare su tutti i browser il 100% delle volte. Forse un approccio diverso per raggiungere l'obiettivo di inviare l'esportazione del documento PDF direttamente a la stampante? o una libreria di terze parti che funzionerà su tutti i browser?
Si può leggere quel documento in Acrobat? –
Sì, se commentiamo exporter.setParameter (JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print ({bUI: true, bSilent: false, bShrinkToFit: true});"); quindi siamo in grado di scaricare il file come allegato pdf. Funziona bene in tutti i browser. – user619804
Cos'è questo software rif? Funziona con i rapporti di Jasper o è un sostituto di Jasper? – user619804