تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طباعة الفورم بأكملها على الورقة مهما كانت أبعادها
#3
السلام عليكم...

1. أضف إلى الـ Form مكون PictureBox و اضبط اسمه (الخاصية Name) على pbxImageHolder. لا يهم حجمه و لا مكانه لأنه لن يظهر أثناء التشغيل و لا أثناء الطباعة، و إنما سنستعمله كمخزن مؤقت للصورة.

2. ضع التصريحات التالية في قسم التصريحات العام:
كود :
Private Const SRCCOPY = &HCC0020

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

3. في الحدث Form_Load اكتب الكود التالي:
كود :
With pbxImageHolder
        .ScaleMode = vbPixels
        .BorderStyle = 0
        .Width = Me.ScaleX(Me.Width, vbTwips, Me.ScaleMode)
        .Height = Me.ScaleY(Me.Height, vbTwips, Me.ScaleMode)
        .AutoRedraw = True
        .Visible = False
    End With

4. في زر الطباعة (أو أمر القائمة الخاص بالطباعة) اكتب الكود التالي:
كود :
Dim OldMode As ScaleModeConstants
    Dim WidthPixels As Long
    Dim HeightPixels As Long
    Dim NCx As Long
    Dim NCy As Long
    
    WidthPixels = Me.Width / Screen.TwipsPerPixelX
    HeightPixels = Me.Height / Screen.TwipsPerPixelY
    NCx = (WidthPixels - Me.ScaleX(Me.ScaleWidth, Me.ScaleMode, vbPixels)) \ 2
    NCy = HeightPixels - Me.ScaleY(Me.ScaleHeight, Me.ScaleMode, vbPixels) - NCx
    
    pbxImageHolder.Cls
    BitBlt pbxImageHolder.hdc, 0, 0, WidthPixels, HeightPixels, Me.hdc, -NCx, -NCy, SRCCOPY
    
    OldMode = Printer.ScaleMode
    Printer.ScaleMode = vbPixels
    Printer.Print "";
    Printer.PaintPicture pbxImageHolder.Image, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight, 0, 0, WidthPixels, HeightPixels
    Printer.EndDoc
    Printer.ScaleMode = OldMode

5. نرجو الاستفادة و السلام.

*** ملاحظات:
أ. الكود السابق يطبع كامل الـ Form بما في ذلك إطارها و شريط عنوانها. إذا كنت تريد طباعة محتوياتها فقط - دون إطار - فإن الكود يحتاج إلى بعض التعديل. أخبرنا لنعدل الكود.
ب. صورة الـ Form تتم طباعتها على كامل الصفحة.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor , Ahmed_Mansoor , رضوان الجماعي


الردود في هذا الموضوع
طباعة الفورم بأكملها على الورقة مهما كانت أبعادها - بواسطة ناجي إبراهيم - 23-05-13, 01:45 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مساعدة في تغيير حجم الفورم حسب دقة عرض الشاشة amazonette 3 1,144 30-03-23, 02:47 PM
آخر رد: amazonette
  كيف يتم طباعة تقرير اكتف ريبورت مباشرة gonm64 1 1,898 03-02-22, 06:22 AM
آخر رد: Taha Okla
Rainbow [سؤال] مساعدة لعمل برنامج حضور وانصراف+وقاعدة بيانات+ربط بالوورد لسهولة طباعة بعض الفورمز فاطمة غ 5 12,484 31-10-20, 01:00 AM
آخر رد: ryadd
  طباعة Frame فقط omarelking 9 5,490 05-10-20, 03:39 PM
آخر رد: alim54
  تغيير اللغة في الفورم حامد محمد 7 4,675 22-01-19, 06:19 PM
آخر رد: elgokr
  [vb6.0] كيف طباعة فاتورة مبيعات من طابعة EPSON LQ-350 awidan76 1 2,874 20-11-18, 12:19 PM
آخر رد: awidan76
  [vb6.0] مساعدة في الفورم الثاني بالمشروع سمير الجبالي 2 2,704 17-07-18, 12:04 AM
آخر رد: سمير الجبالي
  [vb6.0] كود طباعة عمور2016 5 3,499 13-03-18, 12:57 AM
آخر رد: Ahmed_Mansoor
  [كود] كود طباعة جدولين في تقرير واحد عمور2016 4 3,004 07-03-18, 02:24 AM
آخر رد: عمور2016
  اذا نسخت نص من ملف نصي والصقته في اداة List تظهر علماتا استفهام مهما غير من ترميز الم سعود 3 2,594 18-11-17, 11:14 AM
آخر رد: sendbad100

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


يقوم بقرائة الموضوع: