بتاريخ: 20 أغسطس 20178 سنة comment_289289 السلام عليكم ورحمة الله وبركاته ... أحاول إرسال التقرير للطباعة مباشرة عند الضغط علي Button الطباعة بدلاً من عمل Review أو عمل داونلود للتقرير لكن المشكله التي واجهتني هي أن Print Dialog بيظهر علي الـ Server Side وليس الـ Client Side الكود الي استخدمته حتي الأن : public void runPdf(String repPath, java.util.Map param) throws Exception { Connection conn = null; try { HttpServletResponse response = getResponse(); ServletOutputStream out = response.getOutputStream(); response.setHeader("Cache-Control", "max-age=0"); response.setContentType("application/pdf"); ServletContext context = getContext(); InputStream fs = context.getResourceAsStream("/Reports/" + repPath); JasperReport template = (JasperReport)JRLoader.loadObject(fs); template.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL); conn = getConnection(); JasperPrint print = JasperFillManager.fillReport(template, param, conn); ByteArrayOutputStream baos = new ByteArrayOutputStream(); JasperExportManager.exportReportToPdfStream(print, baos); /////////////////// print directly ////////////////// JasperPrintManager.printReport(print, true); // JRPrintServiceExporter exporter; // exporter = new JRPrintServiceExporter(); // exporter.setParameter(JRExporterParameter.JASPER_PRINT, print); // exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE); // exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.TRUE); // exporter.exportReport(); out.write(baos.toByteArray()); out.flush(); out.close(); FacesContext.getCurrentInstance().responseComplete(); } catch (Exception jex) { jex.printStackTrace(); } finally { close(conn); } } هذا موضوع أيضاً وجدته ولكنه قديم وبالـ jsp أحاول إنشاءه بالـ jsf لكن لا أعلم إن كان ممكن أو ماهو المقابل لل Struts-config.xml http://helptodeveloper.blogspot.com.eg/2010/02/way-of-printing-jasper-report-at-client.html شكراً تم تعديل 20 أغسطس 20178 سنة بواسطة Amir Elsaeed تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.