Друкування електронних листів у XPS та TIFF

The Aspose.Email.Printing простір імен надає багатий набір можливостей для друку поштових повідомлень у різні формати (XPS або TIFF) та налаштування розмітки сторінок. У цій статті вони описані. Є кілька варіантів того, як електронне повідомлення можна надрукувати за допомогою Aspose.Email:

  1. Друк лише тіла повідомлення.
  2. Друк тіла повідомлення та заголовків.
  3. Друк HTML‑тела.
  4. Встановлення макету сторінки.
  5. Автопідгонка TIFF під принтер.
  6. Налаштування цільової DPI для вихідного TIFF.

Центральний клас для цих операцій — це 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 см і шириною 8 см з полями по 2 см.

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

Налаштування цільового DPI для вихідного TIFF

Використайте 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);