KeyView 24.4
KeyView Filter SDK .NET Programming Guide

# Start Using KeyView

To use the .NET Filter SDK, open your project in Visual Studio and add a reference (Project > Add Project Reference) to the library `filter_dotnet.dll`, which can be found in the KeyView bin directory. Then add the following statement to your program code.

Copy

    using KeyView.Filter;

## Create a KeyView Session

To use KeyView, first create a KeyView session:

Copy

    using (Session session = new Session(binDir, license))
    {
        // Configure the session and open a document
    }

`binDir` should be a `string` that holds the location of the KeyView Filter SDK binaries, and `license` should be a `string` that holds your license key.

The `Session` class implements the `IDisposable` interface, so you can enclose your use of the session in a `using` block to ensure that resources are automatically freed when no longer required.

To use KeyView in a multi-threaded application, create a unique session on each thread and do not share a session or document between threads.

## Configure the Session

You can configure the behavior of KeyView by setting optional configuration options through the `Config()` method of the `Session` object. The following example enables logical ordering for PDF files:

Copy

    session.Config().PdfLogicalReading(LogicalPDFDirection.automatic);

The `Config()` method returns a reference to the active configuration, so you can also chain configuration options:

Copy

    session.Config().HiddenText(true).HeaderAndFooter(true);

## Open a Document

A `Document` object provides access to the data within a file, including the file format, text, metadata, and any subfiles. Obtain a `Document` object from a file or stream by calling the `Open()` method on your `Session`. For example:

Copy

    string inputFilePath = "InputFile.docx";
    using (Document myDoc = session.Open(inputFilePath))
    {
        // Use the document object to detect the file format, filter text,
        // access metadata and extract subfiles
    }

## Determine the Format of a Document

You can find the format of a document by using the `Info()` method on a `Document` object. For example:

Copy

    using (Document myDoc = session.Open(inputFilePath))
    {
        Console.WriteLine("File class: " + myDoc.Info().DocClassName());
        Console.WriteLine("File format: " + myDoc.Info().DocFormat().ToString());
        Console.WriteLine("Description: " + myDoc.Info().Description());
        Console.WriteLine("File version: " + myDoc.Info().Version().ToString());
    }

## Filter a Document

To filter a document and write the text to a file or stream, call the `Filter()` method on a `Document` object. For example:

Copy

    using (Document myDoc = session.Open(inputFilePath))
    {
        try
        {
            // Filter to a file
            myDoc.Filter(inputFilePath + ".filtered.txt");

            // Alternatively, filter to a stream
            // using (FileStream fs = File.Create(inputFilePath + ".filtered.txt"))
            // {
            //     myDoc.Filter(fs);
            // }
        }
        catch (KeyViewException e)
        {
            Console.WriteLine($"{e.Message}");
        }
    }

## Access Metadata

You can access document metadata through the `Metadata()` method on a `Document` object. For example:

Copy

    using (Metadata metadata = myDoc.Metadata())
    {
        foreach (var element in metadata) using (element)
        {
            // Process the metadata element
        }
    }

## Extract Subfiles

You can iterate over subfile information using the `Subfiles()` method on a `Document` object. Each element returned by the iterator contains information about the subfile, and a method that you can use to extract it:

Copy

    foreach (Subfile file in myDoc.Subfiles()) using (file)
    {
        Console.WriteLine($"Subfile {file.Index()}, size: {file.Size()}");

        if (file.GetSubfileType() != SubfileType.Folder)
        {
            string outputPath = GenerateOutputPath(file);
            file.Extract(outputPath);
        }
    }

Copyright 1997-2024 Open Text
Version 24.4 | Last updated September 2024

Send documentation feedback

Close

Send documentation feedback

To send feedback using your default email client, open an email window.

Otherwise, send your feedback and the information below to MFI-swpdl.idoldocsfeedback@opentext.com.

We appreciate your feedback!

Product: IDOL KeyView 24.4

Topic Title: Start Using KeyView