MFC (Microsoft Foundation Classes) তে প্রিন্টিং এবং প্রিন্ট সেটআপ ডায়ালগ ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ এবং সাধারণত গ্রাফিক্যাল অ্যাপ্লিকেশন এবং রিপোর্টিং অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। এই প্রক্রিয়াগুলি MFC তে প্রিন্টারকে পরিচালনা, প্রিন্টের জন্য কনফিগারেশন সেটিংস নির্ধারণ এবং প্রিন্ট আউটপুট তৈরি করার জন্য ব্যবহৃত হয়। CPrintDialog, CPrintPreview, এবং CDC ক্লাসগুলো প্রিন্টিং সম্পর্কিত কাজগুলোর জন্য ব্যবহৃত হয়।
প্রিন্টিং প্রক্রিয়া (Printing Process)
MFC তে প্রিন্টিং করার জন্য, CDC (Device Context) ক্লাসের সাহায্যে ডিভাইস বা প্রিন্টারে ডেটা রেন্ডার করা হয়। যখন আপনি একটি প্রিন্ট কমান্ড চালান, তখন CDC ক্লাস প্রিন্টার ডিভাইসের সাথে যোগাযোগ করে এবং প্রিন্টিং প্রক্রিয়া শুরু হয়। CPrintDialog ব্যবহার করে আপনি প্রিন্ট সেটআপ ডায়ালগ খুলতে পারেন, এবং CPrintPreview ব্যবহার করে প্রিন্ট প্রিভিউ দেখাতে পারেন।
প্রিন্ট ডায়ালগ (Print Dialog)
CPrintDialog ক্লাসটি ব্যবহারকারীর কাছে প্রিন্ট সেটিংস নির্বাচনের জন্য একটি স্ট্যান্ডার্ড প্রিন্ট ডায়ালগ উইন্ডো প্রদান করে। এই ডায়ালগটি ব্যবহার করে ব্যবহারকারী প্রিন্টার নির্বাচন করতে পারেন, প্রিন্ট কপি সংখ্যা নির্ধারণ করতে পারেন, এবং অন্যান্য প্রিন্ট সেটিংস পরিবর্তন করতে পারেন।
CPrintDialog ব্যবহার:
Code Example:
CPrintDialog printDlg(FALSE); // FALSE মানে প্রিন্ট ডায়ালগ শুধুমাত্র প্রদর্শন করবে, প্রিন্ট করবে না
if (printDlg.DoModal() == IDOK)
{
// ব্যবহারকারী প্রিন্ট সেটআপ সম্পন্ন করেছেন
// প্রিন্টার সেটিংস এবং অন্যান্য অপশনগুলি এখানে অ্যাক্সেস করা যাবে
CDC dc;
dc.Attach(printDlg.GetPrinterDC()); // প্রিন্টার ডিভাইস কনটেক্সটে সংযুক্ত করা
// প্রিন্টিং প্রক্রিয়া এখানে সম্পাদিত হবে
}
এখানে, CPrintDialog ডায়ালগ উইন্ডো প্রদর্শিত হবে এবং ব্যবহারকারী প্রিন্টার এবং অন্যান্য সেটিংস নির্বাচন করবেন। DoModal() ফাংশনটি ডায়ালগ উইন্ডোটি চালাবে এবং ব্যবহারকারী ডায়ালগ বন্ধ করলে IDOK ফিরিয়ে দিবে।
প্রিন্ট সেটআপ ডায়ালগ (Print Setup Dialog)
CPrintDialog এর মাধ্যমে আপনি প্রিন্ট সেটআপ সম্পর্কিত কনফিগারেশন যেমন প্রিন্টার পেজ সাইজ, কপি সংখ্যা ইত্যাদি পরিচালনা করতে পারেন। তবে, CPageSetupDialog ক্লাসটি একটি সাধারণ প্রিন্ট সেটআপ ডায়ালগ প্রদান করে, যা পেজ মাপ, মার্জিন ইত্যাদি সেট করতে সহায়তা করে।
CPageSetupDialog ব্যবহার:
Code Example:
CPageSetupDialog pageSetupDlg;
if (pageSetupDlg.DoModal() == IDOK)
{
// প্রিন্ট সেটআপ ডায়ালগের পরবর্তী কোড
// ব্যবহারকারী যখন সঠিক পেজ সেটিংস নির্বাচন করবেন
}
এটি একটি সাধারণ Page Setup Dialog খুলবে, যেখানে ব্যবহারকারী পেজ সাইজ, মার্জিন ইত্যাদি কনফিগার করতে পারবেন।
প্রিন্ট প্রক্রিয়া (Printing Process) - CDC ব্যবহার
MFC তে CDC (Device Context) ব্যবহার করে প্রিন্টিং করা হয়। CDC হল একটি কনটেক্সট যেখানে সমস্ত গ্রাফিক্যাল ডেটা যেমন লাইন, টেক্সট, এবং ইমেজ প্রিন্ট করার জন্য পাঠানো হয়। এই প্রিন্টিং প্রক্রিয়াতে একটি কাস্টম OnPrint() ফাংশন তৈরি করতে হয়, যা প্রিন্টিং রেন্ডারিং প্রক্রিয়া নিয়ন্ত্রণ করে।
Print ডেটা রেন্ডারিং:
Code Example:
void CMyView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// প্রিন্ট প্রক্রিয়া শুরু
pDC->TextOut(100, 100, _T("Hello, MFC Printing!")); // টেক্সট প্রিন্ট করা
// অন্যান্য গ্রাফিক্স এবং ডেটা রেন্ডারিং ফাংশন ব্যবহার করা যায়
}
এখানে TextOut() ফাংশনটি একটি টেক্সট প্রিন্ট করবে নির্দিষ্ট কোর্ডিনেটস (100, 100) পজিশনে।
প্রিন্ট প্রিভিউ (Print Preview)
CPrintPreview ক্লাসটি ব্যবহৃত হয় প্রিন্টিংয়ের আগে ডকুমেন্টের প্রিভিউ দেখানোর জন্য, যাতে ব্যবহারকারী প্রিন্ট আউটপুট দেখে নিশ্চিত হতে পারেন যে প্রিন্ট সেটিংস ঠিকভাবে কনফিগার করা হয়েছে। এটি প্রিন্টিংয়ের জন্য একটি পিডিএফ বা প্রিন্ট ফাইল তৈরি করার মতো কাজ করে।
Print Preview ব্যবহার:
Code Example:
void CMyView::OnFilePrintPreview()
{
CPrintPreviewState* pState = new CPrintPreviewState;
OnPreparePrinting(pState);
DoPrintPreview(IDD_PREVIEW, this, pState);
}
এখানে, DoPrintPreview() ফাংশনটি প্রিন্ট প্রিভিউ ডায়ালগ চালাবে এবং প্রিন্ট ফাইলটি প্রিভিউ দেখাবে।
সারাংশ
MFC তে প্রিন্টিং এবং Print Setup Dialog ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন গ্রাফিক্যাল ইউজার ইন্টারফেসের মধ্যে রিপোর্ট তৈরি বা ডকুমেন্ট প্রিন্টিং প্রয়োজন হয়। CPrintDialog এবং CPageSetupDialog ডায়ালগ উইন্ডোগুলি প্রিন্টিং এবং সেটআপ প্রক্রিয়াকে সহজ করে, এবং CDC ক্লাসের মাধ্যমে প্রিন্ট আউটপুট তৈরি করা যায়। CPrintPreview ব্যবহারের মাধ্যমে প্রিন্টিংয়ের আগে একটি প্রিভিউ দেখানো সম্ভব। MFC তে এই ফিচারগুলি ব্যবহার করে উন্নত প্রিন্টিং ফাংশনালিটি যুক্ত করা যায়।
Read more