File Content Extraction 25.1
Filter SDK .NET Programming Guide

# Start Using the Filter API

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 `bin` directory. Then add the following statement to your program code.

Copy

    using KeyView.Filter;

## Create a Session

To use the Filter API, first create a 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 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 the Filter API in a multi-threaded application, create a unique session on each thread and do not share a session or document between threads.

## 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 25.1 | Last updated January 2025

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: File Content Extraction 25.1

Topic Title: Start Using the Filter API