Printing in Silverlight 4


Prerequisites

การพิมพ์ใน Silverlight เป็นหนึ่งความต้องการที่เหล่านักพัฒนา Silverlight ต่างเรียกร้อง และถามถึงกันพอสมควร โดยเฉพาะการพัฒนาแอปพลิเคชันทางธุรกิจ การพิมพ์ถือเป็นสิ่งสำคัญ ที่ขาดไม่ได้เลย มาใน Silverlight 4 b1 (SL4) ไมโครซอฟท์จึงได้เพิ่มฟีเจอร์การพิมพ์เข้ามาเพื่อตอบสนองการพัฒนาแอปพลิเคชันทางธุรกิจ ดังกล่าว โดยมีการเพิ่ม namespace System.Windows.Printing เป็น namespace ใหม่ที่เพิ่มเข้ามาใน SL4 สำหรับการพิมพ์เราจะสร้างอ็อบเจ็กต์ PrintDocument แล้วแจ้งการพิมพ์ มันจะ callbacks ไปหาสิ่งที่เราต้องการพิมพ์

ลักษณะการ callbacks เป็นดังนี้:

  • StartPrintEventArgs เริ่มต้นการพิมพ์
  • PrintPageEventArgs ดำเนินการพิมพ์ ประกอบด้วย
    • PageVisual – พื้นที่เนื้อหาต้องการพิมพ์
    • PrintableArea – ขนาดพื้นที่การพิมพ์
    • HasMorePages – ตรวจสอบจำนวนหน้าในการพิมพ์ว่ามีหน้าเพิ่มเติม หรือไม่
  • EndPrintEventArgs  เมื่อสิ้นสุดการพิมพ์ หรือเมื่อเกิดข้อผิดพลาดจากขั้นตอนการพิมพ์

ในบทความนี้ผู้เขียนขอใช้ตัวอย่างโปรเจ็กต์จากบทความ: Drag-Drop Data Binding to Silverlight 4 ก่อนหน้านี้มาเป็นตัวอย่าง ประกอบครับ

เปิดเพจ Home และทำการเพิ่มปุ่ม Button เข้ามาหนึ่งปุ่มตั้งชื่อเป็น btPrint และระบุป้ายชื่อเป็น Print รูป

0

 

จากนั้นดับเบิ้ลคลิกลงบนปุ่มแล้วระบุโค้ดดังนี้:

private void btPrint_Click(object sender, RoutedEventArgs e)
{
    PrintDocument document = new PrintDocument();
    document.PrintPage += (s, args) =>
    {
        args.PageVisual = productsDataGrid; //พิมพ์ข้อมูลบน DataGrid
    }; 
    document.Print();
}

 

เมื่อระบุโค้ดเรียบร้อย ให้ทำการรันแอปพลิเคชัน ทดสอบการพิมพ์กันเลยครับ โดยกดปุ่มพิมพ์

1

 

จะมีหน้าต่าง Print ให้เรากำหนดเครื่องพิมพ์ ในบทความนี้ขอใช้เครื่องพิมพ์ Microsoft XPS Document Writer เพื่อ Export เอกสารออกมาเป็น XPS (XML Paper Specification) จากนั้นกดปุ่ม Print

หมายเหตุ:

  • เอกสาร XPS เหมือนกับแผ่นกระดาษอิเล็กทรอนิกส์คือ คุณไม่สามารถเปลี่ยนเนื้อหาบนกระดาษได้หลังจากที่คุณพิมพ์ออกมา และคุณไม่สามารถแก้ไขเนื้อหาของเอกสาร XPS หลังจากที่คุณบันทึกเอกสารในรูปแบบ XPS

2

 

จะมีหน้าต่าง Save As ให้เราเลือพาธที่ต้องการเก็บไฟล์ *.xps ในที่นี้ขอเก็บไว้ที่ Desktop โดยตั้งชื่อไฟล์เป็น Products จากนั้นกดปุ่ม Save เพื่อให้ ตัว Microsoft XPS Document Writer เขียนข้อมูลออกมาเป็นไฟล์ที่เรากำหนดไว้

3

 

จากนั้นให้เราไปที่ Desktop แล้วทำการเปิดไฟล์ Products.xps เราจะได้ข้อมูลบน DataGrid ออกมาเรียบร้อยแล้ว

4

 

แหล่งข้อมูลดาวน์โหลด:
http://cid-7d608959d854cb28.skydrive.live.com/embedicon.aspx/SourcesCode/11-22-2009_Drag-DropDataBindingToSilverlight4_Printing.zip

 

แหล่งข้อมูลอ้างอิง:

ผู้เขียน:
nano_mvp_2009_1

Advertisements
เกี่ยวกับ

Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: https://janawat.wordpress.com - WindowsITPro Columnist(Mr.Nano): http://windowsitpro.net - The GreatFriends.Biz Community Discussion Board (nano): http://greatfriends.biz - witter: https://twitter.com/janawat - Facebook Page: https://www.facebook.com/nuchit - Instructor: http://bit.ly/GF250-01, http://bit.ly/GF150-02

เขียนใน Silverlight

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

In Archive
%d bloggers like this: