将电子邮件消息打印为 XPS 和 TIFF
该 Aspose.Email.Printing 命名空间提供了一套丰富的功能,可将邮件消息打印为不同格式(XPS 或 TIFF),并配置页面布局。本文将对它们进行描述。使用 Aspose.Email 打印电子邮件消息有多种选项:
- 仅打印邮件正文。
- 打印邮件正文和标题。
- 打印 HTML 正文。
- 设置页面布局。
- 自动将 TIFF 适配到打印机。
- 调整输出 TIFF 的目标 DPI。
这些操作的核心类是 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 cm、宽 8 cm、边距 2 cm 的页面。
// 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 到打印机。以下代码片段展示了如何使用自动适配。
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);
调整输出 TIFF 的目标 DPI
使用 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);