Defines a decoder for Email (MSG, EML) documents.
This C#/VB.NET code shows how to convert Email document to a PDF document.
''' <summary>
''' Converts Email (.msg, .eml) document to a PDF document.
''' </summary>
''' <param name="emailFilePath">Path to a source Email file.</param>
''' <param name="pdfFilePath">Path to a result PDF file.</param>
Public Shared Sub ConvertEmailToPdf(emailFilePath As String, pdfFilePath As String)
' set default Email converter settings
' create headers
EmailLayoutSettings.DefaultEmailSettings.EmailConverterSettings.CreateHeader = True
' create attachment list in header
EmailLayoutSettings.DefaultEmailSettings.EmailConverterSettings.CreateAttachmentsInHeader = True
' create image collection
Dim images As New ImageCollection()
Try
' open Email file
images.Add(emailFilePath)
' create PDF encoder
Using encoder As New PdfEncoder()
' create metadata for Email document
Dim emailMetadata As EmailDocumentMetadata = DirectCast(images(0).SourceInfo.Decoder.GetDocumentMetadata(), EmailDocumentMetadata)
' set subject in PDF document as the Email Subject
Dim subject As String = emailMetadata.FindTextHeader("Subject")
If subject IsNot Nothing Then
encoder.Settings.DocumentSubject = subject
End If
' set title in PDF document as the Email sender
Dim sender As String = emailMetadata.FindTextHeader("Sender")
If sender IsNot Nothing Then
encoder.Settings.DocumentTitle = sender
End If
' save images from image collection (Email document) to a PDF file
images.SaveSync(pdfFilePath, encoder)
End Using
Finally
images.ClearAndDisposeItems()
End Try
End Sub
/// <summary>
/// Converts Email (.msg, .eml) document to a PDF document.
/// </summary>
/// <param name="emailFilePath">Path to a source Email file.</param>
/// <param name="pdfFilePath">Path to a result PDF file.</param>
public static void ConvertEmailToPdf(string emailFilePath, string pdfFilePath)
{
// set default Email converter settings
// create headers
EmailLayoutSettings.DefaultEmailSettings.EmailConverterSettings.CreateHeader = true;
// create attachment list in header
EmailLayoutSettings.DefaultEmailSettings.EmailConverterSettings.CreateAttachmentsInHeader = true;
// create image collection
ImageCollection images = new ImageCollection();
try
{
// open Email file
images.Add(emailFilePath);
// create PDF encoder
using (PdfEncoder encoder = new PdfEncoder())
{
// create metadata for Email document
EmailDocumentMetadata emailMetadata = (EmailDocumentMetadata)images[0].SourceInfo.Decoder.GetDocumentMetadata();
// set subject in PDF document as the Email Subject
string subject = emailMetadata.FindTextHeader("Subject");
if (subject != null)
encoder.Settings.DocumentSubject = subject;
// set title in PDF document as the Email sender
string sender = emailMetadata.FindTextHeader("Sender");
if (sender != null)
encoder.Settings.DocumentTitle = sender;
// save images from image collection (Email document) to a PDF file
images.SaveSync(pdfFilePath, encoder);
}
}
finally
{
images.ClearAndDisposeItems();
}
}
Target Platforms: .NET 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5