21-12-24, 02:36 PM
في Visual Basic.NET عند استخدام Report Viewer للطباعة، يمكنك تعيين حجم الورق للطابعة برمجيًا باستخدام مكتبة
. يتم ذلك عبر إعداد حجم الورق المخصص إلى الطابعة قبل الطباعة. إذا كان الحجم المطلوب هو A7 (74x105 mm)، يمكن تخصيص الحجم كما يلي:
الحل الكامل لتغيير حجم الورق إلى A7:
الكود الكامل:
vb
نسخ الكود
شرح الكود:
نصائح إضافية:
اختبار الكود:
كود :
System.Drawing.Printingالحل الكامل لتغيير حجم الورق إلى A7:
- استيراد المكتبات اللازمة: تأكد من تضمين المكتبات التالية:
vb
نسخ الكود
Imports System.Drawing.Printing - إعداد حجم الورق المخصص: يمكنك إنشاء حجم ورق مخصص باستخدام الكائن
PaperSize - .
- ربط إعدادات الطابعة بـ 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شرح الكود:
- إنشاء حجم ورق مخصص:
- يتم تعريف حجم الورق المخصص باستخدام كائن
PaperSize - .
- يتم تحويل الأبعاد من mm إلى النقاط (points) حيث تستخدم الطابعات النقاط كوحدة قياس.
- يتم تعريف حجم الورق المخصص باستخدام كائن
- تطبيق حجم الورق:
- يتم تعيين حجم الورق على
DefaultPageSettings.PaperSize - الخاصة بالطابعة.
- يتم تعيين حجم الورق على
- الطباعة من خلال ReportViewer:
- يتم تعيين إعدادات الطابعة إلى ReportViewer الخاص بك باستخدام طريقة
PrintToPrinter - .
- يتم تعيين إعدادات الطابعة إلى ReportViewer الخاص بك باستخدام طريقة
نصائح إضافية:
- تأكد من أن الطابعة المثبتة تدعم الحجم المخصص (A7) أو أبعاد الورق المخصصة.
- إذا كنت تريد اختيار طابعة معينة، يمكنك تحديد الطابعة باستخدام:
vb
نسخ الكود
printDoc.PrinterSettings.PrinterName = "اسم الطابعة" - تأكد من إعداد الورقة في إعدادات الطابعة يدويًا في حالة وجود مشكلة في التحديد البرمجي.
اختبار الكود:
- قم بتشغيل المشروع، واستدعاء الدالة
PrintReportWithCustomPaperSize - للطباعة.
- تأكد من تحميل التقرير في ReportViewer بشكل صحيح قبل الطباعة.

