Render Outlook data files as HTML, PDF, and image files
Leave feedback
On this page
GroupDocs.Viewer for .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.
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;// ...using(varviewer=newViewer("sample.pst")){// Create an HTML file.varviewOptions=HtmlViewOptions.ForEmbeddedResources("output.html");viewer.View(viewOptions);}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.Options' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Create an HTML file.
DimviewOptions=HtmlViewOptions.ForEmbeddedResources("output.html")viewer.View(viewOptions)EndUsingEndSubEndModule
The following image demonstrates the result:
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.
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;// ...using(varviewer=newViewer("sample.pst")){// Create a PDF file.varviewOptions=newPdfViewOptions("output.pdf");viewer.View(viewOptions);}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.Options' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Create a PDF file.
DimviewOptions=NewPdfViewOptions("output.pdf")viewer.View(viewOptions)EndUsingEndSubEndModule
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;// ...using(varviewer=newViewer("sample.pst")){// Convert the PST file to PNG.// {0} is replaced with the page numbers in the output image names.varviewOptions=newPngViewOptions("output_{0}.png");// Set width and height.viewOptions.Width=800;viewOptions.Height=900;viewer.View(viewOptions);}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.Options' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Convert the PST file to PNG.
' {0} is replaced with the page numbers in the output image names.
DimviewOptions=NewPngViewOptions("output_{0}.png")' Set width and height.
viewOptions.Width=800viewOptions.Height=900viewer.View(viewOptions)EndUsingEndSubEndModule
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;// ...using(varviewer=newViewer("sample.pst")){// Convert the PST file to JPEG.// {0} is replaced with the page numbers in the output image names.varviewOptions=newJpgViewOptions("output_{0}.jpg");// Set width and height.viewOptions.Width=800;viewOptions.Height=900;viewer.View(viewOptions);}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.Options' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Convert the PST file to JPEG.
' {0} is replaced with the page numbers in the output image names.
DimviewOptions=NewJpgViewOptions("output_{0}.jpg")' Set width and height.
viewOptions.Width=800viewOptions.Height=900viewer.View(viewOptions)EndUsingEndSubEndModule
Get information about folders in an Outlook data file
Follow the steps below to obtain information about folders contained in an Outlook data file.
Call the Viewer.GetViewInfo method, pass the ViewInfoOptions instance to this method as a parameter, and cast the returned object to the OutlookViewInfo type.
Use the OutlookViewInfo.Folders property to obtain the list of folders in the Outlook data file.
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;usingGroupDocs.Viewer.Results;// ...using(varviewer=newViewer("sample.pst")){// Create an HTML file.varviewInfoOptions=ViewInfoOptions.ForHtmlView();varviewInfo=viewer.GetViewInfo(viewInfoOptions)asOutlookViewInfo;if(viewInfo!=null){// Display information about the PST file.Console.WriteLine($"File type: {viewInfo.FileType}");Console.WriteLine($"The number of pages: {viewInfo.Pages.Count}");// Display the list of folders that the PST file contains.Console.WriteLine("The file contains the following folders:");foreach(stringfolderinviewInfo.Folders)Console.WriteLine(folder);}}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.OptionsImportsGroupDocs.Viewer.Results' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Create an HTML file.
DimviewInfoOptions=ViewInfoOptions.ForHtmlView()DimviewInfo=TryCast(viewer.GetViewInfo(viewInfoOptions),OutlookViewInfo)IfviewInfoIsNotNothingThen' Display information about the PST file.
Console.WriteLine($"File type: {viewInfo.FileType}")Console.WriteLine($"The number of pages: {viewInfo.Pages.Count}")' Display the list of folders that the PST file contains.
Console.WriteLine("The file contains the following folders:")ForEachfolderAsStringInviewInfo.FoldersConsole.WriteLine(folder)NextEndIfEndUsingEndSubEndModule
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 OutlookOptions property for one of the following classes (depending on the output file format):
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 OutlookOptions.Folder property for a target view. Specify the folder name as follows: {Parent folder name}\\{Subfolder name}.
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;// ...using(varviewer=newViewer("sample.pst")){// Create an HTML file.varviewOptions=HtmlViewOptions.ForEmbeddedResources();// Render messages from the "Inbox" folder and its subfolders.viewOptions.OutlookOptions.Folder="Inbox";// Render messages from a specific subfolder in the "Inbox" folder.// viewOptions.OutlookOptions.Folder = "Inbox\\Work\\Urgent";viewer.View(viewOptions);}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.Options' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Create an HTML file.
DimviewOptions=HtmlViewOptions.ForEmbeddedResources()' Render messages from the "Inbox" folder and its subfolders.
viewOptions.OutlookOptions.Folder="Inbox"' Render messages from a specific subfolder in the "Inbox" folder.
' viewOptions.OutlookOptions.Folder = "Inbox\\Work\\Urgent";
viewer.View(viewOptions)EndUsingEndSubEndModule
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.MaxItemsInFolder 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:
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;// ...using(varviewer=newViewer("sample.pst")){// Create an HTML file.varviewOptions=HtmlViewOptions.ForEmbeddedResources();// Specify the maximum number of folder items.viewOptions.OutlookOptions.MaxItemsInFolder=30;viewer.View(viewOptions);}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.Options' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Create an HTML file.
DimviewOptions=HtmlViewOptions.ForEmbeddedResources()' Specify the maximum number of folder items.
viewOptions.OutlookOptions.MaxItemsInFolder=30viewer.View(viewOptions)EndUsingEndSubEndModule
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.
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:
OutlookOptions.TextFilter—Allows you to render all messages that contain specific text in the subject or body.
OutlookOptions.AddressFilter—Allows you to render all messages that contain specific text in the sender’s or recipient’s address.
The following code sample filters messages in a PST file before rendering this file to HTML:
usingGroupDocs.Viewer;usingGroupDocs.Viewer.Options;// ...using(varviewer=newViewer("sample.pst")){// Create an HTML file.varviewOptions=HtmlViewOptions.ForEmbeddedResources();// Set filters.viewOptions.OutlookOptions.TextFilter="Viewer";viewOptions.OutlookOptions.AddressFilter="groupdocs.com";viewer.View(viewOptions);}
ImportsGroupDocs.ViewerImportsGroupDocs.Viewer.Options' ...
ModuleProgramSubMain(argsAsString())Usingviewer=NewViewer("sample.pst")' Create an HTML file.
DimviewOptions=HtmlViewOptions.ForEmbeddedResources()' Set filters.
viewOptions.OutlookOptions.TextFilter="Viewer"viewOptions.OutlookOptions.AddressFilter="groupdocs.com"viewer.View(viewOptions)EndUsingEndSubEndModule
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.