Impression de messages électroniques en XPS et TIFF

Le Aspose.Email.Printing l’espace de noms fournit un ensemble riche de fonctions pour imprimer les messages électroniques dans différents formats (XPS ou TIFF) et pour configurer la mise en page. Cet article les décrit. Il existe plusieurs options pour imprimer un message électronique avec Aspose.Email :

  1. Impression uniquement du corps du message.
  2. Impression du corps du message et des en‑têtes.
  3. Impression d’un corps HTML.
  4. Définition de la mise en page.
  5. Adaptation automatique d’un TIFF à l’imprimante.
  6. Ajustement du DPI cible pour le TIFF de sortie.

La classe centrale pour ces opérations est MailPrinter. Son Print méthode accepte un MailMessage, un nom de fichier de sortie, et un PrintFormat valeur (XPS ou Tiff).

Impression du corps du message

Le fragment de code suivant crée un message et l’imprime sans les en-têtes, d’abord dans un fichier XPS puis dans un fichier TIFF. Définissez le FormattingFlags propriété pour MessageFormattingFlags.None pour n’afficher que le corps du message.

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

Impression des en‑têtes et du corps du message

Pour afficher et imprimer les en-têtes du message ainsi que le corps du message, modifiez le FormattingFlags à MessageFormattingFlags.MailInfo.

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

Impression d’un message avec un corps HTML

Les messages avec un corps HTML peuvent également être imprimés. Définissez le contenu HTML à l’aide du HtmlBody propriété avant l’impression.

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

Définir la mise en page pour l’impression

MailPrinter fournit des contrôles pour définir les propriétés de mise en page suivantes :

|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] Il existe deux indicateurs : MailInfo et None.
  • [2] Les unités de page peuvent être l’une des Inch, Pixel, Point, Cm, ou Millimeter.

Le fragment de code ci‑dessous utilise des paramètres arbitraires pour illustrer comment ces propriétés sont utilisées. Il configure une page de 20 cm de haut et 8 cm de large, avec des marges 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;

Adapter automatiquement un TIFF

Aspose.Email.Printing fournit le MessageFormattingFlags.AutoFitWidth indicateur, qui permet d’ajuster automatiquement le TIFF à l’imprimante. Le fragment de code suivant montre comment utiliser l’ajustement automatique.

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

Ajuster le DPI cible pour le TIFF de sortie

Utilisez le DpiX et DpiY propriétés pour contrôler la résolution du TIFF de sortie.

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