Impresión de mensajes de correo electrónico a XPS y TIFF

El Aspose.Email.Printing el espacio de nombres ofrece un conjunto rico de funciones para imprimir mensajes de correo en diferentes formatos (XPS o TIFF) y para configurar diseños de página. Este artículo los describe. Hay varias opciones sobre cómo un mensaje de correo puede imprimirse con Aspose.Email:

  1. Imprimiendo solo el cuerpo del mensaje.
  2. Imprimiendo el cuerpo y los encabezados del mensaje.
  3. Imprimiendo un cuerpo HTML.
  4. Configurando el diseño de página.
  5. Ajuste automático de un TIFF a la impresora.
  6. Ajustando la DPI objetivo para el TIFF de salida.

La clase central para estas operaciones es MailPrinter. Su Print método acepta un MailMessage, un nombre de archivo de salida, y un PrintFormat valor (XPS o Tiff).

Imprimiendo el cuerpo del mensaje

El siguiente fragmento de código crea un mensaje e imprime sin encabezados, primero a un archivo XPS y luego a un archivo TIFF. Establezca el FormattingFlags propiedad para MessageFormattingFlags.None para mostrar solo el cuerpo del mensaje.

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

Imprimiendo encabezados y cuerpo del mensaje

Para mostrar e imprimir los encabezados del mensaje junto con el cuerpo del mensaje, cambie el FormattingFlags a MessageFormattingFlags.MailInfo.

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

Imprimiendo un Mensaje con un Cuerpo HTML

Los mensajes con un cuerpo HTML también pueden imprimirse. Establezca el contenido HTML usando el HtmlBody propiedad antes de imprimir.

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

Establecer el diseño de página para impresión

MailPrinter proporciona controles para establecer las siguientes propiedades de diseño de página:

|Property|Description|Default Value| | :- | :- | :- | |FormattingFlags|Show or hide message details.|None [1]| |MarginTop|Get or set the top margin.|0.5| |MarginLeft|Get or set the left margin.|0.5| |MarginBottom|Get or set the bottom margin.|0.5| |MarginRight|Get or set the right margin.|0.5| |PageUnit|Get or set measurement units.|Inch [2]| |PageHeight|Get or set the page height.|11.69| |PageWidth|Get or set the page width.|8.27|

  • [1] Hay dos banderas: MailInfo y None.
  • [2] Las unidades de página pueden ser una de Inch, Pixel, Point, Cm, o Millimeter.

El fragmento de código a continuación usa configuraciones arbitrarias para ilustrar cómo se utilizan estas propiedades. Configura una página de 20 cm de alto y 8 cm de ancho, con márgenes 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 automáticamente un TIFF

Aspose.Email.Printing proporciona el MessageFormattingFlags.AutoFitWidth bandera, que permite ajustar automáticamente el TIFF a la impresora. El siguiente fragmento de código muestra cómo usar el 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 el DPI objetivo para el TIFF de salida

Utilice el DpiX y DpiY propiedades para controlar la resolución del TIFF de salida.

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