• ভাষা:
  • English
  • বাংলা
হোম > ভিজ্যুয়াল বেসিক ২০০৫ প্রোগ্রামিং
লেখক পরিচিতি
লেখকের নাম: মারুফ নেওয়াজ
মোট লেখা:২০
লেখা সম্পর্কিত
পাবলিশ:
২০০৮ - ডিসেম্বর
তথ্যসূত্র:
কমপিউটার জগৎ
লেখার ধরণ:
সফটওয়্যার
তথ্যসূত্র:
প্রোগ্রামিং
ভাষা:
বাংলা
স্বত্ত্ব:
কমপিউটার জগৎ
ভিজ্যুয়াল বেসিক ২০০৫ প্রোগ্রামিং

ভিবি ডট নেটের মাধ্যমে প্রিন্টিং

প্রোগ্রামিংয়ের ক্ষেত্রে প্রিন্টিং সাপোর্ট দেয়া একটি অতি প্রয়োজনীয় বিষয়। বিশেষ করে অ্যাপ্লিকেশন সফটওয়্যার নিয়ে কাজ করার সময় কোনো তথ্য বা রিপোর্টকে কাগজে প্রিন্ট করানোর প্রয়োজন হয়। প্রিন্টিং সাপোর্টের মাধ্যমে এই ধরনের সুবিন্যস্ত তথ্যগুলোকে প্রিন্ট করানো হয়ে থাকে।





আজকের আলোচনায় ভিবি ডটনেট ল্যাঙ্গুয়েজ ব্যবহার করে প্রিন্ট করার সাধারণ একটি ধারণা দেয়া হয়েছে। ডট নেটে প্রিন্টিংয়ের জন্য Print Document নামে একটি কম্পোনেন্ট ব্যবহার করা হয়। এই কম্পোনেন্টের তিনটি প্রোপার্টি রয়েছে (চিত্র-১), যাদের মাধ্যমে সম্পূর্ণ প্রিন্ট প্রসেস সম্পন্ন হয়। এগুলো হলো :

PrinterSettings : প্রিন্টারের তথ্য আদান-প্রদানের জন্য ব্যবহার হয়।

DefaultPageSettings : প্রত্যেকটি পেজ প্রিন্ট করার জন্য প্রয়োজনীয় সেটিংসের জন্য ব্যবহার হয়।

PointController : প্রত্যেকটি পেজ প্রিন্টিং প্রসেসে কিভাবে প্রিন্ট করা হয় তা ঠিক করে দেয়ার জন্য ব্যবহার হয়।

প্রিন্টিং যেভাবে কাজ করে

PrintDocument কম্পোনেন্টটির একটি অবজেক্ট প্রজেক্টে ব্যবহার করা হলে, এর PrintPage ইভেন্টটি প্রত্যেকবার নতুন পেজ প্রিন্টের সময় কাজ করে। অবজেক্টটির প্রিন্ট মেথড প্রিন্টিংয়ের জন্য প্রিন্ট জব তৈরি করে। প্রিন্ট জব শুরু হলে প্রথমেই BeginPrint ইভেন্টটি কাজ করে। এরপর প্রিন্টিংয়ের প্রত্যেকটি পেজের জন্য একবার করে PrintPage ইভেন্টটি কাজ করে এবং সবশেষে EndPage ইভেন্ট কাজ করে। এ থেকে সহজেই বোঝা যাচ্ছে, প্রিন্টারে প্রিন্ট করার জন্য PrintPage ইভেন্টটি সবথেকে গুরুত্বপূর্ণ। সুতরাং এই ইভেন্টটি সঠিকভাবে ব্যবহার করতে পারলে সহজেই প্রিন্টারে প্রিন্ট করা সম্ভব হবে (চিত্র-২)।

এবারে একটি ফরমে এর ব্যবহার দেখা যাক। একটি উইন্ডোজ প্রজেক্টের ফরমে টুলবক্স থেকে একটি PrintDocument অবজেক্ট নিতে হবে। এছাড়া ফরমে একটি RichTextBox এবং দুটি বাটন যুক্ত করে এবং এদের প্রোপার্টিতে নিচের পরিবর্তনগুলো যোগ করুন।

এছাড়াও প্রিন্টার সিলেক্ট করার জন্য একটি PrintDialog কম্পোনেন্ট যোগ করুন। এবার ফরমটির কোড উইন্ডোতে নিচের কোডগুলো যুক্ত করুন।

Public Class Form1
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
Handles PrintDocument1.PrintPage
Dim linesPerPage As Single = 0
Dim yPosition As Single = 0
Dim count As Integer = 0
Dim leftMargin As Single = e.MarginBounds.Left
Dim topMargin As Single = e.MarginBounds.Top
Dim line As String = Nothing
Dim printFont As Font = rtbPrintingDoc.Font
Dim stReader As IO.StringReader = New IO.StringReader(rtbPrintingDoc.Text)
Dim myBrush As New SolidBrush(Color.Black)
linesPerPage = e.MarginBounds.Height / printFont.GetHeight (e.Graphics)
line = stReader.ReadLine()
While count < linesPerPage And (line IsNot Nothing)
yPosition = (topMargin + (count * printFont.GetHeight (e.Graphics)))
e.Graphics.DrawString(line, printFont, myBrush, leftMargin, _
yPosition, New StringFormat())
count += 1
line = stReader.ReadLine()
End While

If Not (line Is Nothing) Then
e.HasMorePages = True
Else
e.HasMorePages = False
End If
myBrush.Dispose()
End Sub
Private Sub btnPreview_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnPreview.Click
Dim PreviewDialog1 As New PrintPreviewDialog()
PreviewDialog1.Document = PrintDocument1
PreviewDialog1.ShowDialog()
End Sub
Private Sub btnPrint_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnPrint.Click
PrintDialog1.Document = PrintDocument1
If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PrintDocument1.Print()
End If
End Sub
End Class

কোডের প্রথম মেথডটি একটি ইভেন্ট হ্যান্ডেলার। এটা PrintDocument কম্পোনেন্টটির PrintPage ইভেন্টের জন্য ব্যবহার হয়। এখানে প্রিন্টিং ডকুমেন্টের ডিফল্ট মার্জিন, একটি পেজে সর্বোচ্চ লাইনের সংখ্যা, পেজে লাইনগুলো কিভাবে প্রিন্ট হবে, তা ঠিক করে দেয়া আছে। যদি একাধিক পেজ একসাথে প্রিন্ট করতে হয়, তবে এই ইভেন্টটি একটি পেজ প্রিন্ট করে আবার কাজ করবে যতক্ষণ পর্যমত্ম না প্রিন্টিং পেজ শেষ হয়।

Rich Text Box Button1 Buton2
Name : rtb PrintingDoc Name : btn Preview Name : btn Print
Size : 300, 200 Size : 90, 25 Size : 90, 25
Location : 50, 30 Text : Preview Text : Print

প্রিভিউ বাটনের ক্লিক ইভেন্টে প্রথমে একটি PrintPreviewDialog ক্লাসের অবজেক্ট তৈরি করা হয়েছে। এরপর তা ফরমের টেক্সট বক্স থেকে স্ট্রিংটি রিড করে একটি প্রিভিউ ডায়ালগ বক্সে তা দেখানোর ব্যবস্থা করেছে।

প্রিন্ট বাটনের ক্লিক ইভেন্টে প্রথমেই প্রিন্টারের নাম সিলেক্ট করার জন্য প্রিন্ট ডায়ালগ স্ক্রিন দেখানোর ব্যবস্থা করা আছে। যদি কমপিউটারের সাথে কোনো প্রিন্টার ইনস্টল করা না থাকে, তাহলে AddPrinter-এ ক্লিক করে প্রিন্টার ইনস্টল করতে হবে। এর পর ওকে বাটনে ক্লিক করলে প্রিন্টারের টেক্সট বক্সের লেখাগুলো প্রিন্ট হবে (চিত্র-৩)।

ব্যবহারকারীর ইচ্ছেমতো পেজ সেটিংস ও প্রিভিউ তৈরি করার জন্য যথাক্রমে PageSetupDialog এবং PrintPreviewControl নামে আলাদা দুইটি কম্পোনেট আছে। এগুলো ব্যবহার করে যেকোনো প্রিন্টি সাপোর্ট প্রোগ্রামকে ব্যবহারকারীর উপযোগী করে তৈরি করা সম্ভব।

যেকোনো ফাইল থেকে প্রিন্ট করার জন্য প্রথমে ফাইলটিকে রিড করে একটি স্ট্রিং ভেরিয়েবলে রাখতে হবে এবং পরে সেখান থেকে প্রিন্ট করতে হবে।
পত্রিকায় লেখাটির পাতাগুলো
লেখাটি পিডিএফ ফর্মেটে ডাউনলোড করুন
২০০৮ - ডিসেম্বর সংখ্যার হাইলাইটস
চলতি সংখ্যার হাইলাইটস