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();
}
Używamy takiego kodu, aby wyeksportować dokument PDF z aplikacji Jasper.Eksportowanie plików PDF w Internet Explorerze
Linia
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT,
"this.print({bUI: true,bSilent: false,bShrinkToFit: true});");
dodaje JavaScript, aby wysłać dokument PDF bezpośrednio do drukarki.
Oczekiwane zachowanie polega na tym, że zostanie wyświetlone okno dialogowe drukowania z podglądem dokumentu PDF.
To działa dobrze przez większość czasu - z wyjątkiem tego, że mam problemy z jednym na pięć razy w przeglądarkach Internet Explorer 8 i Firefox.
Co się dzieje - okno podglądu wydruku z dokumentem PDF nie pojawia się lub pojawia się z pustym dokumentem w oknie podglądu.
-I've spróbował liczbę różnych JavaSkrypty (różnych params do this.print()
poprzez exporter.setParameter
-I've wypróbowane ustalanie różnych nagłówków odpowiedzi takich jak
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=\""
+ reportName
+ "\"");
response.setContentLength(baos.size());
te nie wydają się pomóc
Wydaje się, że to problem IE i FF.Czy ktokolwiek kiedykolwiek poradził sobie z tym problemem? Muszę go uruchomić w 100% przypadków we wszystkich przeglądarkach.Być może inne podejście do osiągnięcia celu wysyłania dokumentu PDF eksport bezpośrednio do drukarka lub biblioteka strony trzeciej, która będzie działać w różnych przeglądarkach?
Czy możesz przeczytać ten dokument w programie Acrobat? –
Tak, jeśli skomentujemy exporter.setParameter (JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print ({bUI: true, bSilent: false, bShrinkToFit: true});"); wtedy możemy pobrać plik jako załącznik pdf. Działa to dobrze we wszystkich przeglądarkach. – user619804
Co to jest oprogramowanie rif? Czy działa z raportami Jaspera czy jest substytutem jaspisa? – user619804