Hyland’s Document Filters SDK gives software developers the tools they need to embed rich document processing into their applications. A single toolkit provides all you need to:

  • Extract content, including track changes and hidden content from 550+ formats
  • Convert documents to high-fidelity renditions in PDF, SVG, HTML5, XML, PostScript or Image
  • Manipulate, annotate, redact and markup content, all out of the box

Document Filters is one of the few SDKs to run natively on 22 platforms, from mobile to mainframe, Android to AIX. Our APIs give you the choice of language to integrate with your application, including Java, C#, C/C++ or Python.

Document Conversion in 15 Lines or Less

Explore how easy it is to leverage Document Filters in your applications by taking advantage of the sample code below.

class Program
{
    // Extract all subfiles from a container
    static void Run(string sourceFile, string outputDirectory)
    {
        // Create an initialize an instance of the Document Filters API
        var docFilters = new DocumentFilters();
        docFilters.Initialize(LICENSE_KEY);

        // Load the source document ready for processing
        var doc = docFilters.GetExtractor(sourceFile);

        // Extract each subfile
        for (var subfile = doc.GetFirstSubFile(); subfile != null; subfile = doc.GetNextSubFile()) {
            subfile.CopyTo(System.IO.Path.Combine(outputDirectory, subfile.Name));
        }
    }
}
class Program
{
    // Create a multi-page PDF from a source file
    static void Run(string sourceFile, string outputFile)
    {
        // Create an initialize an instance of the Document Filters API
        var docFilters = new DocumentFilters();
        docFilters.Initialize(LICENSE_KEY);

        // Load the source document ready for processing
        var doc = docFilters.GetExtractor(sourceFile);
        doc.Open(isys_docfilters.IGR_BODY_AND_META | isys_docfilters.IGR_FORMAT_IMAGE);

        // Create a PDF canvas
        var canvas = docFilters.MakeOutputCanvas(outputFile, isys_docfilters.IGR_DEVICE_PDF, "");

        // Render each page of the document into the PDF
        for (int pageIndex = 0; pageIndex < item.GetPageCount(); pageIndex++) {
            canvas.RenderPage(doc.GetPage(pageIndex))
        }
    }
}
class Program
{
    // Create one PNG per page
    static void Run(string sourceFile, string outputDirectory)
    {
        // Create an initialize an instance of the Document Filters API
        var docFilters = new DocumentFilters();
        docFilters.Initialize(LICENSE_KEY);

        // Load the source document ready for processing
        var doc = docFilters.GetExtractor(sourceFile);
        doc.Open(isys_docfilters.IGR_BODY_AND_META | isys_docfilters.IGR_FORMAT_IMAGE);

        // Render each page to it's own PNG
        for (int pageIndex = 0; pageIndex < item.GetPageCount(); pageIndex++) {
            using (var canvas = docFilters.MakeOutputCanvas(System.IO.Path.Combine(
            outputDirectory, $"page-{pageIndex+1}.png",
            isys_docfilters.IGR_DEVICE_IMAGE_PNG, "")) {
                canvas.RenderPage(doc.GetPage(pageIndex))
            }
        }
    }
}

Why Document Filters?

Leverage Document Filters to:

The ideal OEM partner technology

Document Filters is the ideal OEM partner technology for processing unstructured content outside of native applications. Today, this powerful technology is the key catalyst driving content mining and intelligence-gathering across a key range of business applications. These include:


As an embeddable set of components, Document Filters serves as the 'intelligence' inside solutions from many global ISVs and SaaS vendors. It also helps drive content gathering and mining for ISV software applications.