Render Lotus Notes database files as HTML, PDF, and image files

GroupDocs.Viewer for .NET allows you to render Lotus Notes Storage Facility (NSF) files in HTML, PDF, PNG, and JPEG formats. Use this library to display the contents of NSF 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 NSF files online View demos and examples on GitHub

Render Lotus Notes database files as HTML

To convert an NSF file to HTML, call the HtmlViewOptions.ForEmbeddedResources method to create an HtmlViewOptions class instance and pass this instance to the Viewer.View method.

using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
// ...

using (var viewer = new Viewer("sample.nsf"))
{
   // Create an HTML file.
    var viewOptions = HtmlViewOptions.ForEmbeddedResources("output.html");
    viewer.View(viewOptions);
}
Imports GroupDocs.Viewer
Imports GroupDocs.Viewer.Options
' ...

Module Program
    Sub Main(args As String())
        Using viewer = New Viewer("sample.nsf")
            ' Create an HTML file.
            Dim viewOptions = HtmlViewOptions.ForEmbeddedResources("output.html")
            viewer.View(viewOptions)
        End Using
    End Sub
End Module

The following image demonstrates the result:

Render an NSF file to HTML

Render Lotus Notes database files as PDF

Create a PdfViewOptions class instance and pass it to the Viewer.View method to convert an NSF 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.

using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
// ...

using (var viewer = new Viewer("sample.nsf"))
{
    // Create a PDF file.
    var viewOptions = new PdfViewOptions("output.pdf");
    viewer.View(viewOptions);
}
Imports GroupDocs.Viewer
Imports GroupDocs.Viewer.Options
' ...

Module Program
    Sub Main(args As String())
        Using viewer = New Viewer("sample.nsf")
            ' Create a PDF file.
            Dim viewOptions = New PdfViewOptions("output.pdf")
            viewer.View(viewOptions)
        End Using
    End Sub
End Module

The following image demonstrates the result:

Render an NSF file to PDF

Render Lotus Notes database files as PNG

Create a PngViewOptions class instance and pass it to the Viewer.View method to convert an NSF file to PNG. Use the PngViewOptions.Height and PngViewOptions.Width properties to specify the output image size in pixels.

using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
// ...

using (var viewer = new Viewer("sample.nsf"))
{
    // Convert the NSF file to PNG.
    // {0} is replaced with the page numbers in the output image names.
    var viewOptions = new PngViewOptions("output_{0}.png");
    //  Set width and height.
    viewOptions.Width = 800;
    viewOptions.Height = 1000;
    viewer.View(viewOptions);
}
Imports GroupDocs.Viewer
Imports GroupDocs.Viewer.Options
' ...

Module Program
    Sub Main(args As String())
        Using viewer = New Viewer("sample.nsf")
            ' Convert the NSF file to PNG.
            ' {0} is replaced with the page numbers in the output image names.
            Dim viewOptions = New PngViewOptions("output_{0}.png")
            '  Set width and height.
            viewOptions.Width = 800
            viewOptions.Height = 1000
            viewer.View(viewOptions)
        End Using
    End Sub
End Module

The following image demonstrates the result:

Render an NSF file to PNG

Render Lotus Notes database files as JPEG

Create a JpgViewOptions class instance and pass it to the Viewer.View method to convert an NSF file to JPEG. Use the JpgViewOptions.Height and JpgViewOptions.Width properties to specify the output image size in pixels.

using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
// ...

using (var viewer = new Viewer("sample.nsf"))
{
    // Convert the NSF file to JPEG.
    // {0} is replaced with the page numbers in the output image names.
    var viewOptions = new JpgViewOptions("output_{0}.jpg");
    //  Set width and height.
    viewOptions.Width = 800;
    viewOptions.Height = 1000;
    viewer.View(viewOptions);
}
Imports GroupDocs.Viewer
Imports GroupDocs.Viewer.Options
' ...

Module Program
    Sub Main(args As String())
        Using viewer = New Viewer("sample.nsf")
            ' Convert the NSF file to JPEG.
            ' {0} is replaced with the page numbers in the output image names.
            Dim viewOptions = New JpgViewOptions("output_{0}.jpg")
            '  Set width and height.
            viewOptions.Width = 800
            viewOptions.Height = 1000
            viewer.View(viewOptions)
        End Using
    End Sub
End Module

Specify rendering options

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

Limit the number of items to render

When you load large Lotus Notes database files, it may take a significant amount of time to retrieve and render file contents. To improve rendering performance, use the MailStorageOptions.MaxItems property to limit the number of rendered items. The default property value is 0 (all existing items appear in the output file).

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

using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
// ...

using (var viewer = new Viewer("sample.nsf"))
{
    // Create an HTML file.
    var viewOptions = HtmlViewOptions.ForEmbeddedResources();
    // Specify the maximum items to render.
    viewOptions.MailStorageOptions.MaxItems = 20;
    viewer.View(viewOptions);
}
Imports GroupDocs.Viewer
Imports GroupDocs.Viewer.Options
' ...

Module Program
    Sub Main(args As String())
        Using viewer = New Viewer("sample.nsf")
            ' Create an HTML file.
            Dim viewOptions = HtmlViewOptions.ForEmbeddedResources()
            ' Specify the maximum items to render.
            viewOptions.MailStorageOptions.MaxItems = 20
            viewer.View(viewOptions)
        End Using
    End Sub
End Module

Filter messages

IBM Notes 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 IBM Notes

With GroupDocs.Viewer, you can also filter messages before rendering a Lotus Notes database file to HTML, PDF, or image format. To do this, use the following properties:

The following code sample filters messages in an NSF file before rendering this file to HTML:

using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
// ...

using (var viewer = new Viewer("sample.nsf"))
{
    // Create an HTML file.
    var viewOptions = HtmlViewOptions.ForEmbeddedResources();
    // Set filters.
    viewOptions.MailStorageOptions.TextFilter = "Viewer";
    viewOptions.MailStorageOptions.AddressFilter = "groupdocs@mail.com";
    viewer.View(viewOptions);
}
Imports GroupDocs.Viewer
Imports GroupDocs.Viewer.Options
' ...

Module Program
    Sub Main(args As String())
        Using viewer = New Viewer("sample.nsf")
            ' Create an HTML file.
            Dim viewOptions = HtmlViewOptions.ForEmbeddedResources()
            ' Set filters.
            viewOptions.MailStorageOptions.TextFilter = "Viewer"
            viewOptions.MailStorageOptions.AddressFilter = "groupdocs@mail.com"
            viewer.View(viewOptions)
        End Using
    End Sub
End Module