بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
كيف يمكن طباعة لوحة jpanel وجميع مكوناتها من رسوم ومربعات نص على الطابعة الافتراضية للنظام وتحديد الطباعة بعرض الورقة ؟
بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
كيف يمكن طباعة لوحة jpanel وجميع مكوناتها من رسوم ومربعات نص على الطابعة الافتراضية للنظام وتحديد الطباعة بعرض الورقة ؟
بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
جزاك الله خيرا علاء الصالحي ، لكن المثال كان طويلا فلم أستطع فهمه في المرة الأولى ، لكن أخذت منه كلمة printable وبحثت في وثائق jdk فوجدت الصفحة التالية وهي تحتوي على مثالين بسيطين في الفقرة 7-3 .
http://java.sun.com/j2se/1.5.0/docs/guide/.../j2d-print.html
وسوف أورد لكم الان المثال الذي أنشأته :
اولا : أضف الصنف التالي إلى مشروعك
package print;
import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import javax.swing.JPanel;
// الصنف القابل للطباعة يجب أن يكون مشتق implements من الصنف printable
public class AnyPrintAble extends JPanel implements Printable {
//في الدالة print أكتب أو ارسم ما تريد أن يظهر على الورقة
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
graphics.drawString("rohaili", 90, 90);
return Printable.PAGE_EXISTS;
}
}ثانيا : ضع الأوامر التالية في أي مكان تشاء لإنشاء كائن من الصنف السابق وطباعته .
//استدعاء الطابعة الافتراضية
PrinterJob job = PrinterJob.getPrinterJob();
//إنشاء كائن قابل للطباعة من الصنف AnyPrintAble
job.setPrintable(new AnyPrintAble());
//استدعاء صندوق حوار الطابعة
if (job.printDialog())
try {
//طباعة الصفحة
job.print();
}
catch (PrinterException ex) {
Logger.getLogger(RohailiprintView.class.getName()).log(Level.SEVERE, null, ex);
}ملاحظة : في مربع حوار الطباعة اختر الصفحة الحالية أو من 1إلى 1 .
مرفق المشروع بهيئة netbeans .
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…