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

هوامش الصفحة...هل من حل؟؟

مغلق
بدأه blackeyes في 24 يناير 2008 · 4 رد · 1,042 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي سؤال عن كيفية تحديد عهوامش الصفحة والتي تتناسب مع كافة الطابعات

فانا عندما اكتب كود الطباعة واحدد مقاسات الصفحة مثلا A4

واجرب على طابعتي ... كل شئ تمام

ولكن عندما اذهب الى الزبون واطبع على طابعته تنزاح الكتابة الى اليمين وحتى الان لا اعرف السبب

فكيف احدد للبرينت دوكيومينت ان تحافظ على مقاس موحد للطباعة على اي طابعة؟؟

#2

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

اولا في الحدث printpage قم بضبط اعدادات الصفحة وبعدذلك ومنها الخاصية papersize

with e.pagesettings
'ضع هنا هوامش الصفحة 
.margins=new margins(25,15,30,15)
.papersize=getpapersize(e.pagesettings.printersettings,paperkind.A4)

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

فمثلا مقاسات وحجم الورق في طابعتك متناسب مع نوعها ولكن عند الزبون غير متناسب لأن طابعته تختلف عن طابعتك لذلك يجب يجب مقارنة نوع الورق في كل الجهتين حتى يتم معرفة الحجم وذلك في الدالة كالتالي

private function getpapersize(ps as printersettings,kind as paperkind) as papersize
dim psz as papersize
for each psz in ps.papersizes
if psz.kind=kind then
return psz
end if
next
return ps.paperseizes(0)
end function

طبعا وسائط الدالة وسيطين وسيط من نوع إعدادات الطباعة printersettings والثاني يحدد نوع الورقة طبعا توجد قائمة من الانواع يمكنك اختيار نوع واحد منها وشكرا

تم تعديل هذه المشاركة بواسطة أبوعزام في 25 يناير 2008 في 19:35

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#3

انا اشكرك جزيل الشكر اخي العزيز ابو عزام على هذا الشرح

واثرت لي سؤال ......... ماذا يقصد بـ Kind ؟

اعلم انها احدى خصائص البيبر سيز ولكن مامعناها؟

وكذلك لم افهم ماتقصد بخصوص :

اقتباس
فمثلا مقاسات وحجم الورق في طابعتك متناسب مع نوعها ولكن عند الزبون غير متناسب لأن طابعته تختلف عن طابعتك

كلا الصفحتين A4 فكيف تفهمها كل طابعة غير الاخرى؟

أم انها كلها تنحصر بالهوامش

لقد جربت ان اضع الهوامش (0,0,0,0) لكن لم ارى تغييرا

وشكرا مجددا

تم تعديل هذه المشاركة بواسطة blackeyes في 25 يناير 2008 في 23:43

#4

أخي الحبيب بالنسبة للـ kind هو نوع خاص باحجام الورق أي أن لكل حجم نوع خاص به معرف في كل طابعة وهذا النوع يختلف من طابعة لأخرى أي أن نوع الورق A4 في طابعتك يختلف في نوع الورق A4 في طابعة الزبون .ربما تسأل كيف ذلك ؟فأقول هذه لغة الطابعات ولايفهمها إلا صانعها.

ربما كماتقول أن متعلق بالهوامش ولكن يمكنك حل مشكلة الهوامش وذلك عن طريق معرف الحجم الصحيح للمساحة وذلك عن طريق الكائن visiableClipBounds لنفس الصفحة وذلك بطرح عرض الورقة من عرض الهامش الخارجي وذلك كالتالي

لوفرضنا اننا نريد وضع مستطيل حول الورقة بالمقاس الصحيح نقوم بعمل التالي في حدث Printpage

dim g as graphics=e.graphics
dim rct as new rectangel(e.marginsBounds.top-(e.MarginsBounds.width-g.visableClipBounds.Width)/2,e.MarginsBounds.left(e.MarginsBounds.width-g.visableClipBounds.Width)/2,e.marginsBounds.X,e.MarginsBound.y)
g.drawrectangle(pen.Black,rect)

هذا فقط وبإذن الله سوف يضبط معك المقاس وأي شيء أنا حاضر

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#5

بما ان الكثير من المشاركات لاتحبذ الرد بكلمات الشكر ولا أعلم لماذا

ولكن رغم ذلك

مشكوووووووووووووووووووووووووور جدا اخي الحبيب ابو عزام على ردك الكافي والوافي

هذا الموضوع مغلق.

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