Render Outlook data files as HTML, PDF, and image files

GroupDocs.Viewer for Python via .NET allows you to render Microsoft Outlook data files in HTML, PDF, PNG, and JPEG formats. Use this library to display the contents of OST and PST files within your .NET application (web or desktop).

To start with the GroupDocs.Viewer API, create a Viewer class instance. Pass a document you want to view to the class constructor. You can load the document from a file or stream. Call one of the Viewer.view method overloads to convert the document to HTML, PDF, or image format. These methods allow you to render the entire document or specific pages.

View Outlook files online View demos and examples on GitHub

Supported Outlook data file formats

GroupDocs.Viewer supports the following Outlook data file formats:

GroupDocs.Viewer can detect the document format automatically based on information in the file header.

Render Outlook data files as HTML

To convert an OST or PST file to HTML, call the HtmlViewOptions.for_embedded_resources method to create an HtmlViewOptions class instance and pass this instance to the Viewer.view method.

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions

def render_outlook_to_html():
    # Load Outlook data file
    with Viewer("sample.pst") as viewer:
        # Create an HTML file.
        viewOptions = HtmlViewOptions.for_embedded_resources("render_outlook_to_html/pdf_page_{0}.html")
        viewer.view(viewOptions)

if __name__ == "__main__":
    render_outlook_to_html()

sample.pst is the sample file used in this example. Click here to download it.

The following image demonstrates the result:

Render a PST file to HTML

Render Outlook data files as PDF

Create a PdfViewOptions class instance and pass it to the Viewer.view method to convert an OST or PST file to PDF. The PdfViewOptions class properties allow you to control the conversion process. For instance, you can protect the output PDF file, reorder its pages, and specify the quality of document images. Refer to the following documentation section for details: Rendering to PDF.

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PdfViewOptions

def render_outlook_to_pdf():
    # Load Outlook data file
    with Viewer("sample.pst") as viewer:
        # Create a PDF file.
        viewOptions = PdfViewOptions("render_outlook_to_pdf/outlook_data.pdf")
        viewer.view(viewOptions)

if __name__ == "__main__":
    render_outlook_to_pdf()

sample.pst is the sample file used in this example. Click here to download it.

The following image demonstrates the result:

Render a PST file to PDF

Render Outlook data files as PNG

Create a PngViewOptions class instance and pass it to the Viewer.view method to convert an OST or PST file to PNG. Use the PngViewOptions.height and PngViewOptions.width properties to specify the output image size in pixels.

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PngViewOptions

def render_outlook_to_png():
    # Load Outlook data file
    with Viewer("sample.pst") as viewer:
        # Convert the PST file to PNG.
        # {0} is replaced with the page numbers in the output image names.
        viewOptions = PngViewOptions("render_outlook_to_png/outlook_page_0_{0}.png")
        # Set width and height.
        viewOptions.width = 800
        viewOptions.height = 900
        viewer.view(viewOptions)

if __name__ == "__main__":
    render_outlook_to_png()

sample.pst is the sample file used in this example. Click here to download it.

The following image demonstrates the result:

Render a PST file to PNG

Render Outlook data files as JPEG

Create a JpgViewOptions class instance and pass it to the Viewer.view method to convert an OST or PST file to JPEG. Use the JpgViewOptions.height and JpgViewOptions.width properties to specify the output image size in pixels.

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import JpgViewOptions

def render_outlook_to_jpg():
    # Load Outlook data file
    with Viewer("sample.pst") as viewer:
        # Convert the PST file to JPEG.
        # {0} is replaced with the page numbers in the output image names.
        viewOptions = JpgViewOptions("render_outlook_to_jpg/outlook_to_jpg_{0}.jpg")
        # Set width and height.
        viewOptions.width = 800
        viewOptions.height = 900
        viewer.view(viewOptions)

if __name__ == "__main__":
    render_outlook_to_jpg()

sample.pst is the sample file used in this example. Click here to download it.

Specify rendering options

GroupDocs.Viewer supports the OutlookOptions class that allows you to specify different options for rendering Outlook data files. To access these options, use the outlook_options property for one of the following classes (depending on the output file format):

Render a specific folder

When you convert an OST or PST file to HTML, PDF, or image format, GroupDocs.Viewer renders messages from all folders contained in the file (including nested folders). If you want to render items from a specific folder, set the outlook_options.folder property for a target view. Specify the folder name as follows: {Parent folder name}\\{Subfolder name}.

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions

def render_outlook_specific_folder():
    # Load Outlook data file
    with Viewer("sample.pst") as viewer:
        # Create an HTML file.
        viewOptions = HtmlViewOptions.for_embedded_resources("render_outlook_specific_folder/outlook_specific_folder.html")
        # Render messages from the "Inbox" folder and its subfolders.
        viewOptions.outlook_options.folder = "Inbox"
        # Render messages from a specific subfolder in the "Inbox" folder.
        # viewOptions.outlook_options.folder = "Inbox\\Work\\Urgent"
        viewer.view(viewOptions)

if __name__ == "__main__":
    render_outlook_specific_folder()

sample.pst is the sample file used in this example. Click here to download it.

Limit the number of folder items to render

When you load large Outlook data files, it may take a significant amount of time to retrieve and render file contents. To improve rendering performance, use the OutlookOptions.max_items_in_folder property to limit the number of rendered items (messages, contacts, or tasks) in each folder. The default property value is 50. Set this property to 0 to render all existing items.

The following example demonstrates how to specify the maximum number of folder items to render:

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions

def render_outlook_with_max_items():
    # Load Outlook data file
    with Viewer("sample.pst") as viewer:
        # Create an HTML file.
        viewOptions = HtmlViewOptions.for_embedded_resources("render_outlook_with_max_items/outlook_with_max_items.html")
        # Specify the maximum number of folder items.
        viewOptions.outlook_options.max_items_in_folder = 30
        viewer.view(viewOptions)

if __name__ == "__main__":
    render_outlook_with_max_items()

sample.pst is the sample file used in this example. Click here to download it.

Filter messages

Microsoft Outlook allows you to filter messages by specific words in the message body or by part of the sender’s or recipient’s address.

Filter messages in Microsoft Outlook

With GroupDocs.Viewer, you can also filter messages before rendering an Outlook data file to HTML, PDF, or image format. To do this, use the following properties:

The following code sample filters messages in a PST file before rendering this file to HTML:

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions

def render_outlook_with_filters():
    # Load Outlook data file
    with Viewer("sample.pst") as viewer:
        # Create an HTML file.
        viewOptions = HtmlViewOptions.for_embedded_resources("render_outlook_with_filters/outlook_with_filters.html")
        # Set filters.
        viewOptions.outlook_options.text_filter = "Viewer"
        viewOptions.outlook_options.address_filter = "groupdocs.com"
        viewer.view(viewOptions)

if __name__ == "__main__":
    render_outlook_with_filters()

sample.pst is the sample file used in this example. Click here to download it.

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.