الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تصدير تقرير jasper إلى ملف pdf في مشروع jsp و jsf

بدأه rohaili في 1 أكتوبر 2010 · 5 رد · 1,455 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

بداية أحب أن أتوجه بالشكر ل oracle_java على رده في موضوع محاولة تحتاج لتصحيح بالنسبة لإضافة تقرير لصفحة jsf

/index.php?showtopic=227188

وعلى حله للمشكلة بطريقة servlet class لكن المشكلة أنني لم أستطع تطبيق الحل ! واستمر ظهور الأخطاء معي , لكني لم أيأس واستمريت في البحث والتعلم إلى أن حلت المشكلة بالطريقة التالية


String fileName = "f:\\folder jasper example\\report1.jasper";
//String fileName = "/reports/report1.jasper";
String outFileName = "f:\\folder jasper example\\output1.pdf";
//String outFileName = "/reports/output1.pdf";

HashMap hm = new HashMap();
try {
//Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "mypassword");

JasperPrint print = JasperFillManager.fillReport(fileName, hm, conn);

// Create a PDF exporter
JRExporter exporter = new JRPdfExporter();

// Configure the exporter (set output file name and print object)
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outFileName);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);

// Export the PDF file
exporter.exportReport();

مرفق مشروع jsp و jsf بدون مكتبات لتقليل الحجم

يمكن الحصول على المكتبات بالرجوع للموضوع التالي

تصدير تقرير jasper إلى pdf أو xls أو طباعته على الطابعة

/index.php?showtopic=229230

لكن ماذا لو أردت من المستخدم أن يحدد مكان حفظ الملف على جهازه ؟

وكيف يمكن استخدام المسار النسبي للملف حيث لم استطع استخدام الامران التاليان بطريقة صحيحة


String fileName = this.getServletContext().getRealPath("/reports/report1.jasper");
String outFileName = this.getServletContext().getRealPath("/reports/output1.pdf");

JasperTestJsf.zip

JasperTestJsp.zip

تم تعديل هذه المشاركة بواسطة rohaili في 1 أكتوبر 2010 في 18:11

300_130.gif

#2
اقتباس
لكن ماذا لو أردت من المستخدم أن يحدد مكان حفظ الملف على جهازه ؟

قم بكتابة الملف إلى ال HttpServletResponse ...

إستخدم شئ من هذا القبيل:

InputStream pdfIs = .....;
response.setContentType("application/pdf");		//a String specifying the MIME type of the content
respoinse.setContentLength(size_of_pdf_file);
OutputStream out = response.getOutputStream();
int b;
while ( (b=pdfIs.read())  != -1)
	out.write(b);
pdfIs.close();
out.close();
#3

السلام عليكم

اهلا اخى رحيلى واخى هويدى

كل عام وانتم بخير

ثم ارى ان حل هذه المشكلة بسيط جدا جدا

جرب المشروع المرفق فى رد الاخ oracle_java وعند فتح التقرير ال pdf اضغط ctrl + s او file---->save

سيتم حفظ التقرير كملف pdf وفى المكان الذى تحدده انت

واظن طبعا كل المتصفحات تدعم هذه المهمة الاساسية (حفظ الصفحة الحالية)

اذا اخبر مستخدمى تطبيقك ان يستخدموا امر الحفظ ctrl+s لحفظ التقرير

اظنها سهلة أليس كذلك ؟

وبالنسبة لحل المشكلة الاولى

this.getServletContext().getRealPath(
   	"reps/report1.jasper")

وضع التقارير فى مجلد يسمى reps واجعله فى المجلد الرئيسى للمشروع

اى بجوار الملف index.html والمجلد WEB-INF

وسيعمل معك المشروع ان شاء الله

لاحظ ان استخدام المسار المطلق "f:\\reports\\myreport.jasper"

سيمثل لك مشكلة عند نشر المشروع

عموما انا فى انتظار آراءكم

تقبل مرورى

تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 5 أكتوبر 2010 في 16:39

1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#4

وعليكم السلام ورحمة الله وبركاته

جزاكما الله خيرا

لكن المشروع لم يعمل وقد أرقني كثيرا

وقد أرفقت لكم المشروع بدون الملف war وبدون مكتبات للتأكد من ذلك


String fileName = this.getServletContext().getRealPath("reports/report1.jasper");
String outFileName = this.getServletContext().getRealPath("reports/output8.pdf");

post-63809-043805600 1286341570_thumb.jp

JasperTestJsp.zip

المرفقات
rep.jpg

تم تعديل هذه المشاركة بواسطة rohaili في 6 أكتوبر 2010 في 08:11

300_130.gif

#5

عزيزي rohaili

للاسف قاعدة البيانات الخاصه بمشروعك ليست عندي لذلك قمت بانشاء مشروع بسيط للتجربة الفكره.

جرب ملف war المرفق , لن تحتاج الى اي اعدادات, قم باضافة ملف war الى السيرفر و فتح الرابط التالي

http://localhost:8080/PDFPrint/

post-82434-098426000 1286355589_thumb.gi

اذا كان هذا ما تبحث عنه ,,, فيمكنك اضافة الكود الموجود في الملف pdf.jsp الى المكان المناسب في المشروع الخاص بك.

وشكرا

PDFPrint.rar

المرفقات
O_06.gif

تم تعديل هذه المشاركة بواسطة العيافـي في 6 أكتوبر 2010 في 12:05

1
#6

السلام عليكم ورحمة الله وبركاته

جزاكم الله خيرا

طريقتك أخي العيافي تحفظ الملف على سطح المكتب

وأنا أريد أن يظهر للمستخدم صندوق حوار يمكنه من تحديد المكان الذي يحفظ فيه الملف

String DIR = System.getProperty("user.home")+
                System.getProperty("file.separator")+"Desktop"+
                System.getProperty("file.separator");
            JasperExportManager.exportReportToPdfFile(print, DIR+"Test.pdf");

300_130.gif

مواضيع مشابهة