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

طباعة الورقة a5-landscape لا تزبط الا عن طريق printpreview

بدأه iamsad في 4 مارس 2012 · 5 رد · 1,125 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اطبع محتويات printdocument في ورقة a5 وان تكون لاندسكيب

الورقة تطبع مزبوطة عن طريق printpreview الا انني عندما استخدم الامر المباشر printdocument.print() فكان اعدادات الورقة لم يتم ضبطها فتخرج الورقة من غير ان تكون لاندسكيب وتكون منطقة الطباعة ايضا غير مزيوطة

وضعت الكود التالي في زر الطباعة

        Dim pkCustomSize1 As New PaperSize("statementt", 1050, 1050)
        PrintDocument1.DefaultPageSettings.PaperSize = pkCustomSize1
        PrintDocument1.Print()

        Dim pkCustomSize2 As New PaperSize("a5", 1050, 1050)
        PrintDocument2.DefaultPageSettings.PaperSize = pkCustomSize2
        PrintDocument2.Print()

والكود التالي في حدث PrintDocument1_QueryPageSettings

        e.PageSettings.PaperSize.PaperName = PaperKind.A5
        PrintDocument2.DefaultPageSettings.Landscape = True

فمالمشكلة اذا؟

GTTT FORM.rar

تم تعديل هذه المشاركة بواسطة iamsad في 4 مارس 2012 في 17:01

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#2

وعليكم السلام ..

ضع الكود التالي في الحدث QueryPageSetting :

e.PageSettings.Landscape = True

بدلا من الكود الموجود ، وإن شاء الله تنجح معك ..

1

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#3

السلام عليكم

جزاك الله الف الف خير ايها العاشق للبرمجة على هذه الاجابة جعلها الله في ميزان حسناتك

فقط هناك مشكلة صغيرة وهي منطقة الطباعة فكما ترى قمت بضبط الاحداثيات على غير موضعها

فهل هناك امكانية لتحديد منطقة الطباعة دون التقيد بمقاسات الورقة كأن اقول للبرنامج ان يبدا الطباعة من النقطة كذا ؟

ام انني ساضطر لاعادة ضبط الاحداثيات وهي كما تعلم عملية شاقة !

ارجو منك المساعدة .

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#4

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

 e.PageSettings.PrintableArea.Location

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

#5

حياك الله أخي وجزاك بالمثل ..

بالنسبة للإحداثيات ، فلم أرى أي مشكلة ، فقط هناك انحراف بسيط في موضع الرسم البياني ، وهذا بسبب الإعدادات التي قمت بكتابتها ، فإذا رغبت بالتعامل مع A5 فيجب أن تقوم بعملية الرسم لـ A5 وهكذا ، وبالتالي فعملية الإعدادات مقترنة بحجم الورقة التي تتعامل معها ..

بالنسبة لـ printablearea فهي read only property وبالتالي يجب استخدامها مع الكائنات المراد رسمها ، مثال :

 e.Graphics.DrawRectangle(Pens.Black, 0, 0, e.PageSettings.PrintableArea.Width, e.PageSettings.PrintableArea.Height - e.PageSettings.PrintableArea.Top)

جرب أخي أن تضع PrintPreviewDialoge وقم بوضع الكود التالي فيه :

PrintPreviewDialog2.Document = PrintDocument2
        PrintPreviewDialog2.WindowState = FormWindowState.Maximized
        PrintPreviewDialog2.ShowDialog()

وبناءً على ما يظهر لك حاول التعديل على الأكواد ..

أنا شخصياً لا أستخدم هذه الطريقة فهي متعبه جدا ، وربما تكون مناسبة مع طابعات Dot Matrix ، ولكن لماذا لا تستخدم أخي RDLC Reports فهي مريحة وتؤدي لك الذي تريده ..

بالتوفيق إن شاء الله

1

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#6

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

اما بالنسبة للـ RDLC Reports فلم اسمع به من قبل ساحاول ان اعرف عنه ان شاء الله

مشكور اخي

يا أهل سوريا اعلنوها خلافة اسلامية لتكون الشام عقر دار المسلمين وخلاص ارض فلسطين

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