تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 44 +

تعداد کل مطالب : 338 +

تعداد نظرات : 33 +

حضرت علی (ع) : علم گنج بزرگی است که با خرج کردن تمام نمی شود.

آموزش مقدماتی تا پیشرفته سی شارپ بخش نودم


به نام خدایی که در این نزدیکی است.

آموزش مقدماتی تا پیشرفته سی شارپ بخش نودم

سلام به همه کاربران وبسایت لندلرن

قسمت نودم


ادامه قسمت قبلی.

حال بايد چاپگر مورد استفاده براي چاپ و همچنين تنظيم هاي آن را، براي شيئ PrintDocument مشخص كنيم.

بـراي اين كار كافي است تنظيمهايي كه كاربر در كادر Print مـشخص كـرده اسـت را بـه ايـن شـيئ بفرسـتيم .

تنظـيم هـاي كـادر Print در خاصــــيت PrinterSettings ذخيــــره مــــي شــــوند .

پــــس كــــافي اســــت خاصــــيت PrinterSettings.objPrintDocument را برابر با آن قرار دهيم .

حال بايد متد Print را فراخواني كنيم .

اين متد رويداد PrintPage را احضار مي كند و اح ضار اين رويداد نيز باعـث مـي شود كه كد درون متد prtPage اجرا شود .

نكته ديگري كه در اضافه كردن يك متد به يك رويداد بايد در نظر داشته باشيد اين است كه متـدهايي كـه مـي تواننـد بـه رويـداد PrintPage اضافه شوند بايد داراي ساختار خاصي باشند .

اين متدها نبايد مقداري را برگردانند (مقدار برگـشتي آنهـا بايـد بـه صورت void تعريف شود ).

همچنين بايد دو پارامتر را از ورودي دريافت كنند :

  • اولين پارامتر مشخص كننده شـيئ اسـت كـه ايـن رويداد را فراخواني كرده است .
    • نام اين پارامتر sender و نوع آن از نوع كلاس Object خ واهد بود .
  • دومين پارامتر بايد شيئ از نوع كلاس PrintPageEventArgs باشد.
    • اين پارامتر حاوي اطلاعاتي در مورد صفحه اي كه بايد چاپ شود خواهد بود.

بنابراين متد prtPage كه بايد به وسيله رويداد PrintPage فراخواني شود مشابه زير خواهد بود :

حال به بررسي كدهايي مي پردازيم كه در داخل اين متد بايد اجرا شوند .

ابتدا بايد تعدادي متغيير تعريف كنيم و مقادير آنها را تنظـيم كنيم.

توجه كنيد كه مقادير متغيرهاي sngLeftMargin و sngTopMargin به وسيله مقادير موجـود در پـارامتر PrintPageEventArgs كه به متد ارسال مي شود تنظيم خواهد شد.

حال بايد مشخص كنيم كه در هر صفحه چند خط مي تواند چاپ شود .

براي اين كار بايد ارتفاع قابل چـاپ در صـفحه را بـر ارتفـاع فونــت (ارتفــاع هــر خــط ) تقــسيم كنــيم.

بــراي دسترســي بــه ارتفــاع قابــل چــاپ در صــفحه مــي تــوانيم از خاصــيت Height.MarginBounds در شيئ e از كلاس PrintPageEventArgs استفاده كنيم

ارتفاع قابل چاپ در صفحه در كادر PrintDialog تنظيم شـده و در خاصـيت PrinterSettings قـرار مـي
گيرد.

در كدهاي قبلي ايـن خاصـيت را در خاصـيت PrinterSettings مربـوط بـه شـيئ objPrintDocument قــرار داديــم .

شــيئ objPrintDoument هــم هنگــامي كــه بخواهــد رويــداد PrintPage را فراخواني كند.

اين مقدار را به وسـيله شـيئ از كـلاس PrintPageEventArgs بـه متـدهاي فراخواني شده مي فرستد.

پس به اين ترتيب متغيير sngLinesPerPage حاوي تعداد خطوطي خواهد بود كه در هر صفحه قرار مي گيرد .

حال بايد محتويات فايل را خط به خط خوانده و در صفحه براي چاپ قرار دهيم .

براي اين كار با استفاده از يك حلقه، متن داخل فايل را خـط به خط در صفحه وارد مي كنيم .

اجراي اين حلقه تا زماني ادامه پيدا مي كند كه يا متن داخل فايل تمام شود و به انتهاي فايل برسيم و يا تعداد خطهايي كه در صفحه قرار داده ايم برابر با حداكثر تعداد خطهايي شود كه مي توانيم در يك صفحه وارد كنيم.

بـه عبـارت ديگر صفحه پر شود. بنابراين ابتدا اولين خط را خوانده و در متغير strLine قرار مي دهيم و سپس حلقه را اجرا مي كنيم :

قبل از اينكه متني را در صفحه قرار دهيم بايد مشخص كنيم كه موقعيت عمودي متن در صفحه چقدر است.

بـه عبـارت ديگـر بايـد فاصله متن را از بالاي صفحه مشخص كنيم .

براي تعيين فاصله متن از بالاي صفحه بايد اندازه قـسمت سـفيد بـالاي صـفحه را بـا ارتفاع تعداد خطهايي كه تاكنون چاپ شده اند جمع كنيم. براي محاسبه ارتفاع تعداد خطهايي كه تاكنون چاپ شده اند نيز بايد حاصل ضرب تعداد خطهايي كه در صفحه چاپ شده اند در ارتفاع هر خط را بدست آوريم :

ادامه در قسمت نود و یکم مشاهده کنید.

 


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ