تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعديل حجم ورق الطابعة برمجيا
#2
في Visual Basic.NET عند استخدام Report Viewer للطباعة، يمكنك تعيين حجم الورق للطابعة برمجيًا باستخدام مكتبة
كود :
System.Drawing.Printing
. يتم ذلك عبر إعداد حجم الورق المخصص إلى الطابعة قبل الطباعة. إذا كان الحجم المطلوب هو A7 (74x105 mm)، يمكن تخصيص الحجم كما يلي:

الحل الكامل لتغيير حجم الورق إلى A7:
  1. استيراد المكتبات اللازمة: تأكد من تضمين المكتبات التالية:
    vb
    نسخ الكود
    Imports System.Drawing.Printing
  2. إعداد حجم الورق المخصص: يمكنك إنشاء حجم ورق مخصص باستخدام الكائن
    PaperSize
  3. .
  4. ربط إعدادات الطابعة بـ ReportViewer: تأكد من تطبيق إعدادات الطابعة على كائن ReportViewer الخاص بك.

الكود الكامل:
vb
نسخ الكود
كود :
Imports System.Drawing.Printing

Private Sub PrintReportWithCustomPaperSize()
   Try
       ' إنشاء الطابعة الافتراضية
       Dim printDoc As New PrintDocument()
       Dim printerName As String = printDoc.PrinterSettings.PrinterName

       ' إنشاء حجم الورق المخصص A7 (بالنقاط)
       Dim customPaperSize As New PaperSize("A7", ConvertToPoints(74), ConvertToPoints(105)) ' الحجم بوحدة الميليمتر
       
       ' إعداد الطابعة الافتراضية
       printDoc.DefaultPageSettings.PaperSize = customPaperSize
       printDoc.PrinterSettings.DefaultPageSettings.PaperSize = customPaperSize

       ' تعيين الطابعة إلى ReportViewer
       ReportViewer1.LocalReport.PrintToPrinter(printDoc.PrinterSettings, printDoc.DefaultPageSettings)

       MessageBox.Show("تمت الطباعة بنجاح!")
   Catch ex As Exception
       MessageBox.Show($"حدث خطأ: {ex.Message}")
   End Try
End Sub

' دالة لتحويل المليمترات إلى النقاط (1 إنش = 25.4 ملم = 100 نقطة)
Private Function ConvertToPoints(mm As Double) As Integer
   Return CInt((mm / 25.4) * 100)
End Function

شرح الكود:
  1. إنشاء حجم ورق مخصص:
    • يتم تعريف حجم الورق المخصص باستخدام كائن
      PaperSize
    • .
    • يتم تحويل الأبعاد من mm إلى النقاط (points) حيث تستخدم الطابعات النقاط كوحدة قياس.
  2. تطبيق حجم الورق:
    • يتم تعيين حجم الورق على
      DefaultPageSettings.PaperSize
    • الخاصة بالطابعة.
  3. الطباعة من خلال ReportViewer:
    • يتم تعيين إعدادات الطابعة إلى ReportViewer الخاص بك باستخدام طريقة
      PrintToPrinter
    • .

نصائح إضافية:
  • تأكد من أن الطابعة المثبتة تدعم الحجم المخصص (A7) أو أبعاد الورق المخصصة.
  • إذا كنت تريد اختيار طابعة معينة، يمكنك تحديد الطابعة باستخدام:
    vb
    نسخ الكود
    printDoc.PrinterSettings.PrinterName = "اسم الطابعة"
  • تأكد من إعداد الورقة في إعدادات الطابعة يدويًا في حالة وجود مشكلة في التحديد البرمجي.

اختبار الكود:
  • قم بتشغيل المشروع، واستدعاء الدالة
    PrintReportWithCustomPaperSize
  • للطباعة.
  • تأكد من تحميل التقرير في ReportViewer بشكل صحيح قبل الطباعة.
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: تعديل حجم ورق الطابعة برمجيا - بواسطة aljzazy - 21-12-24, 02:36 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مساعدة تعديل على الكود ZEEN4ZEEN 2 209 08-10-25, 02:20 PM
آخر رد: salamandal
  تعديل كود تحديث البيانات مصمم هاوي 1 784 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
  تعديل على استدعاء الدرجات حسب الاختيار مصمم هاوي 11 992 15-04-25, 06:16 PM
آخر رد: princelovelorn
  ارجو تعديل الكود بواستطة الاجراء المخزن new_programer 3 676 03-04-25, 02:44 PM
آخر رد: princelovelorn
  تعديل مسار مكان حفظ النسخة الاحتياطية مصمم هاوي 6 806 02-03-25, 01:06 PM
آخر رد: atefkhalf2004
  محتاج تعديل على كود الحذف new_programer 2 652 17-02-25, 06:50 PM
آخر رد: new_programer
  ارجو تعديل الكود جلب البيانات عن طريق اجراء مخزن - مرفق مثال new_programer 0 620 05-02-25, 01:51 AM
آخر رد: new_programer
  طلب تعديل كود جلب اسم الملف ومساره مصمم هاوي 4 537 25-01-25, 12:45 AM
آخر رد: مصمم هاوي
  تعديل كود الحذف مصمم هاوي 2 484 10-01-25, 03:03 PM
آخر رد: عبد العزيز البسكري
  تعديل على أكواد العمليات بالفورم Frm_Edite العيدروس 5 427 11-12-24, 04:10 PM
آخر رد: العيدروس

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم