การพิมพ์ข้อความอีเมลเป็น XPS และ TIFF

นี้ Aspose.Email.Printing namespace มีชุดคุณลักษณะที่หลากหลายสำหรับการพิมพ์ข้อความเมลไปยังรูปแบบต่าง ๆ (XPS หรือ TIFF) และการกำหนดค่าเลย์เอาต์ของหน้า บทความนี้อธิบายเกี่ยวกับสิ่งเหล่านั้น มีหลายตัวเลือกสำหรับวิธีการพิมพ์ข้อความอีเมลด้วย Aspose.Email:

  1. พิมพ์เฉพาะเนื้อหาข้อความ.
  2. พิมพ์เนื้อหาข้อความและส่วนหัว.
  3. พิมพ์เนื้อหา HTML.
  4. ตั้งค่าการจัดหน้า.
  5. การปรับขนาด TIFF ให้พอดีกับเครื่องพิมพ์
  6. การปรับ DPI ของเป้าหมายสำหรับไฟล์ TIFF ผลลัพธ์

คลาสศูนย์กลางสำหรับการดำเนินการเหล่านี้คือ MailPrinter. ส่วน Print เมธอดรับพารามิเตอร์เป็น MailMessage, ชื่อไฟล์ผลลัพธ์และ PrintFormat ค่า (XPS หรือ Tiff).

พิมพ์เนื้อหาข้อความ

โค้ดตัวอย่างต่อไปนี้สร้างข้อความและพิมพ์โดยไม่มีส่วนหัว ไปยังไฟล์ XPS ก่อนแล้วจึงไปยังไฟล์ TIFF ตั้งค่า FormattingFlags คุณสมบัติสำหรับ MessageFormattingFlags.None เพื่อแสดงเฉพาะส่วนเนื้อหา

// Declare message as a MailMessage instance
MailMessage message = new MailMessage();
message.From = "user1@domain.com";
message.To = "user2@domain.com";
message.Subject = "My First Mail";
message.Date = DateTime.Now;
message.Body = "Text is the Mail Message";

// Instantiate an instance of MailPrinter and set the FormattingFlags to None to display only the message body
var printer = new Aspose.Email.Printing.MailPrinter();
printer.FormattingFlags = Aspose.Email.Printing.MessageFormattingFlags.None;

// Print the email to an XPS and TIFF file
printer.Print(message, dataDir + "PrintXPS_out.xps", Aspose.Email.Printing.PrintFormat.XPS);
printer.Print(message, dataDir + "PrintTIFF_out.tiff", Aspose.Email.Printing.PrintFormat.Tiff);

พิมพ์ส่วนหัวและเนื้อหาข้อความ

เพื่อแสดงและพิมพ์ส่วนหัวของข้อความพร้อมกับเนื้อหาเปลี่ยน FormattingFlags เป็น MessageFormattingFlags.MailInfo.

printer.FormattingFlags = Aspose.Email.Printing.MessageFormattingFlags.MailInfo;

การพิมพ์ข้อความที่มีเนื้อหา HTML

ข้อความที่มีเนื้อหา HTML ก็สามารถพิมพ์ได้เช่นกัน ตั้งค่าเนื้อหา HTML ด้วย HtmlBody คุณสมบัติก่อนการพิมพ์

// Body of the email message
message.IsBodyHtml = true;
message.HtmlBody = "<html><body><h1>Hello this is html body in Heading 1 format </h1></body></html>";

การตั้งค่าการจัดหน้าสำหรับการพิมพ์

MailPrinter ให้การควบคุมการตั้งค่าคุณสมบัติการจัดหน้า:

|คุณสมบัติ|คำอธิบาย|ค่าเริ่มต้น| | :- | :- | :- | |FormattingFlags|แสดงหรือซ่อนรายละเอียดข้อความ.|None [1]| |MarginTop|รับหรือกำหนดขอบด้านบน.|0.5| |MarginLeft|รับหรือกำหนดขอบด้านซ้าย.|0.5| |MarginBottom|รับหรือกำหนดขอบด้านล่าง.|0.5| |MarginRight|รับหรือกำหนดขอบด้านขวา.|0.5| |PageUnit|รับหรือกำหนดหน่วยวัด.|Inch [2]| |PageHeight|รับหรือกำหนดความสูงของหน้า.|11.69| |PageWidth|รับหรือกำหนดความกว้างของหน้า.|8.27|

  • [1] มีสองแฟล็ก: MailInfo และ None.
  • [2] หน่วยของหน้าอาจเป็นหนึ่งใน Inch, Pixel, Point, Cm, หรือ Millimeter.

โค้ดตัวอย่างด้านล่างใช้การตั้งค่าต่าง ๆ เพื่ออธิบายวิธีการใช้คุณสมบัติเหล่านี้ มันตั้งค่าหน้ากระดาษสูง 20 ซม. และกว้าง 8 ซม. พร้อมระยะขอบ 2 ซม.

// Instantiate an instance of MailPrinter
var printer = new Aspose.Email.Printing.MailPrinter();

// Just for testing, get the default property values
double width = printer.PageWidth;
double height = printer.PageHeight;

// Set page layout for printing
printer.PageUnit = Aspose.Email.Printing.PrinterUnit.Cm;
printer.MarginTop = 2;
printer.MarginBottom = 2;
printer.MarginLeft = 2;
printer.MarginRight = 2;
printer.PageWidth = 8;
printer.PageHeight = 20;

ปรับขนาด TIFF ให้พอดีโดยอัตโนมัติ

Aspose.Email.Printing ให้ MessageFormattingFlags.AutoFitWidth แฟล็ก ที่ช่วยให้คุณปรับขนาด TIFF ให้เหมาะกับเครื่องพิมพ์ โค้ดตัวอย่างต่อไปนี้แสดงวิธีใช้ auto-fit

string dataDir = RunExamples.GetDataDir_KnowledgeBase();

// Instantiate an instance of MailPrinter
Printing.MailPrinter printer = new Printing.MailPrinter();
printer.FormattingFlags = Printing.MessageFormattingFlags.AutoFitWidth;
MailMessage msg = MailMessage.Load(dataDir + "message3.msg", new MsgLoadOptions());
printer.Print(msg, dataDir + "AutoFit_out.tiff", Printing.PrintFormat.Tiff);

ปรับ DPI เป้าหมายสำหรับ TIFF ที่ส่งออก

ใช้ DpiX และ DpiY คุณสมบัติเพื่อควบคุมความละเอียดของ TIFF ที่ส่งออก

// The path to the File directory and instantiate an instance of MailPrinter
string dataDir = RunExamples.GetDataDir_KnowledgeBase();
Printing.MailPrinter printer = new Printing.MailPrinter();
printer.DpiX = 300;
printer.DpiY = 300;
MailMessage msg = MailMessage.Load(dataDir + "message3.msg", new MsgLoadOptions());
printer.Print(msg, dataDir + "AdjustTargetDPI_out.tiff", Printing.PrintFormat.Tiff);