Stampa dei messaggi email in XPS e TIFF

Il Aspose.Email.Printing lo spazio dei nomi offre un ricco set di funzionalità per stampare messaggi di posta in diversi formati (XPS o TIFF) e per configurare layout di pagina. Questo articolo li descrive. Esistono diverse opzioni su come un messaggio email può essere stampato con Aspose.Email:

  1. Stampa solo il corpo del messaggio.
  2. Stampa del corpo del messaggio e delle intestazioni.
  3. Stampa di un corpo HTML.
  4. Impostazione del layout della pagina.
  5. Adattamento automatico di un TIFF alla stampante.
  6. Regolazione della DPI di destinazione per il TIFF di output.

La classe centrale per queste operazioni è MailPrinter. Il suo Print il metodo accetta un MailMessage, un nome file di output e un PrintFormat valore (XPS oppure Tiff).

Stampa del corpo del messaggio

Il frammento di codice seguente crea un messaggio e lo stampa senza intestazioni, prima in un file XPS e poi in un file TIFF. Imposta il FormattingFlags proprietà per MessageFormattingFlags.None per visualizzare solo il corpo del messaggio.

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

Stampa delle intestazioni e del corpo del messaggio

Per visualizzare e stampare le intestazioni del messaggio insieme al corpo del messaggio, modifica il FormattingFlags a MessageFormattingFlags.MailInfo.

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

Stampa di un Messaggio con un Corpo HTML

I messaggi con un corpo HTML possono anche essere stampati. Imposta il contenuto HTML usando il HtmlBody proprietà prima della stampa.

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

Impostare il layout della pagina per la stampa

MailPrinter fornisce controlli per impostare le seguenti proprietà di layout della pagina:

|Proprietà|Descrizione|Valore predefinito| | :- | :- | :- | |FormattingFlags|Mostra o nascondi i dettagli del messaggio.|None [1]| |MarginTop|Ottieni o imposta il margine superiore.|0.5| |MarginLeft|Ottieni o imposta il margine sinistro.|0.5| |MarginBottom|Ottieni o imposta il margine inferiore.|0.5| |MarginRight|Ottieni o imposta il margine destro.|0.5| |PageUnit|Ottieni o imposta le unità di misura.|Inch [2]| |PageHeight|Ottieni o imposta l’altezza della pagina.|11.69| |PageWidth|Ottieni o imposta la larghezza della pagina.|8.27|

  • [1] Ci sono due flag: MailInfo e None.
  • [2] Le unità di pagina possono essere una di Inch, Pixel, Point, Cm, o Millimeter.

Il frammento di codice sottostante utilizza impostazioni arbitrarie per illustrare come queste proprietà sono usate. Imposta una pagina alta 20 cm e larga 8 cm, con margini di 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;

Adatta automaticamente un TIFF

Aspose.Email.Printing fornisce il MessageFormattingFlags.AutoFitWidth segnalazione, che consente di adattare automaticamente il TIFF alla stampante. Il frammento di codice seguente mostra come usare l’adattamento automatico.

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

Regola il DPI di destinazione per il TIFF di output

Usa il DpiX e DpiY proprietà per controllare la risoluzione del TIFF di output.

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