VintaSoft Imaging .NET SDK 15.2: Documentation for .NET developer
In This Topic
Codecs: How to convert an Email file to a PDF file?
In This Topic
Here is C#/VB.NET code that shows how to convert an Email file to a PDF file:
/// <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();
    }
}
''' <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