Imprimindo Mensagens de E‑mail para XPS e TIFF

O Aspose.Email.Printing namespace fornece um conjunto rico de recursos para imprimir mensagens de correio em diferentes formatos (XPS ou TIFF) e para configurar layouts de página. Este artigo os descreve. Existem várias opções de como uma mensagem de email pode ser impressa com Aspose.Email:

  1. Imprimindo apenas o corpo da mensagem.
  2. Imprimindo o corpo da mensagem e os cabeçalhos.
  3. Imprimindo um corpo HTML.
  4. Definindo o layout da página.
  5. Ajustando automaticamente um TIFF à impressora.
  6. Ajustando a DPI de destino para o TIFF de saída.

A classe central para essas operações é MailPrinter. Seu Print método aceita um MailMessage, um nome de arquivo de saída e um PrintFormat valor (XPS ou Tiff).

Imprimindo o Corpo da Mensagem

O trecho de código a seguir cria uma mensagem e a imprime sem cabeçalhos, primeiro para um arquivo XPS e depois para um arquivo TIFF. Defina o FormattingFlags propriedade para MessageFormattingFlags.None para exibir apenas o corpo da mensagem.

// 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);

Impressão de Cabeçalhos e Corpo da Mensagem

Para exibir e imprimir os cabeçalhos da mensagem junto com o corpo da mensagem, altere o FormattingFlags para MessageFormattingFlags.MailInfo.

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

Imprimindo uma Mensagem com um Corpo HTML

Mensagens com um corpo HTML também podem ser impressas. Defina o conteúdo HTML usando o HtmlBody propriedade antes da impressão.

// 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>";

Definindo o Layout de Página para Impressão

MailPrinter fornece controles para definir as seguintes propriedades de layout de página:

|Propriedade|Descrição|Valor Padrão| | :- | :- | :- | |FormattingFlags|Exibir ou ocultar detalhes da mensagem.|None [1]| |MarginTop|Obter ou definir a margem superior.|0.5| |MarginLeft|Obter ou definir a margem esquerda.|0.5| |MarginBottom|Obter ou definir a margem inferior.|0.5| |MarginRight|Obter ou definir a margem direita.|0.5| |PageUnit|Obter ou definir unidades de medida.|Inch [2]| |PageHeight|Obter ou definir a altura da página.|11.69| |PageWidth|Obter ou definir a largura da página.|8.27|

  • [1] Existem dois sinalizadores: MailInfo e None.
  • [2] As unidades de página podem ser uma das Inch, Pixel, Point, Cm, ou Millimeter.

O trecho de código abaixo usa definições arbitrárias para ilustrar como essas propriedades são usadas. Ele configura uma página de 20 cm de altura por 8 cm de largura, com margens de 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;

Ajustar automaticamente um TIFF

Aspose.Email.Printing fornece o MessageFormattingFlags.AutoFitWidth sinalizador, que permite ajustar automaticamente o TIFF ao tamanho da impressora. O trecho de código a seguir demonstra como usar o ajuste automático.

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);

Ajustar o DPI de Destino para o TIFF de Saída

Use o DpiX e DpiY propriedades para controlar a resolução do TIFF de saída.

// 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);