Foxit PDF SDK - Overview

Industry-best PDF technology for Windows platforms

The Foxit PDF SDK for Windows is a powerful PDF library that ships with easy-to-use C and Java interfaces. Developers can seamlessly integrate PDF rendering, navigation, creation, searching, annotation, protection, PDF text extract, image conversion, form data collection, and editing capabilities into their application and services running. We even provide a demo to introduce how to implement multi-threaded applications for peak performance.

The Foxit PDF SDK for .NET brings native .NET support to the core of Foxit PDF SDK and allows easy integration into .NET based projects. It includes the most common features such as PDF viewing, bookmark navigation, text selection, searching and copying, as well as advanced annotation and digital signature support.

The Foxit PDF SDK for Universal Windows Platform (UWP) on Windows 10 is packaged as a Windows runtime component for developers who need to develop applications for UWP across Windows 10 devices, such as PCs, tablets, and phones. The SDK ships with easy-to-use APIs that allow developers to seamlessly integrate most common PDF capabilities (such as PDF viewing, bookmark navigation, text selection, searching and copying), as well as advanced annotation and digital signature support with their UWP applications. It is supported in Visual C++, Visual C#, Visual Basic, JavaScript, and other languages that support the Windows Runtime.

We also provide demos to show how to use Foxit SDK on Windows.

The Foxit PDF SDK for Windows supports the following operating systems:

  • Windows 10 and Windows 10 universal app
  • Windows 7 and 8 (32-bit, 64-bit)
  • Windows Server 2003, 2008 and 2012 (32-bit and 64-bit)
  • The release package includes both a 32 bit version and native 64 bit version DLL library for windows 32/64
  • .Net Component (32/64-bit for Framework 3.5 and 32/64bit for Framework 4.0)

Render PDFs

High performance PDF libraries to render PDF pages, page objects, annotations, and forms the way they were intended to be viewed: sharp, clear, accurate, and easy to read. Allows applications to view, zoom in, zoom out, and print PDF documents and forms. It also allows application to start, cancel, stop, and continue rendering files. Progressive processing allows developers to use idle system resources to improve the user experience. The PDF SDK is optimized to deliver superior PDF rendering speeds on devices with limited resources. The PDF engine is able to render large PDF documents in less time, which provides consumers with a better user experience.


PDF is a fixed-layout flat document format, it cannot automatically word wrap according to the width of a page. Reflow is a function that automatically rearranges page content when the page size changes. It is useful for applications that have output devices with difference sizes - for example, for both desktop and mobile devices. Reflow frees the applications from considering layout for different devices. This function provides APIs to create, render, release and access properties of reflow pages.

Asynchronous support

Asynchronous is a method to access PDF pages without loading the whole document, so applications do not have to wait for the whole PDF file to be downloaded before accessing them. For example, readers can start reading the first page while the rest of the document is still loading. It's especially valuable for accessing PDF files over the Internet (web reading applications) and for accessing large documents. Applications can open any page of the document when the data for that page is available.

Page organization

Merge and combine specified page ranges from different PDF files into a single PDF. Split one PDF into separate PDFs based on page ranges. Developers can merge PDF files (partial or whole), extract any pages from a PDF to save as a new PDF, and delete specific pages from a PDF file.


Annotations are a very powerful feature within PDF. It enhances the interactivity between collaborating colleagues to share ideas and feedback. The PDF SDK provides APIs for annotation creation, properties access, search, and modification (appearance setting and drawing). It also provides APIs to export and import all annotations from and to PDF and FDF document. The APIs support the following annotation types: text (note), free text (typewriter), line, square, circle, polygon, polyline, highlight, underline, squiggly, strikeout, stamp, caret, and ink (pencil).


Watermark is a widely used PDF annotation that consists of a visible embedded overlay on a document, typically text, an image, or a copyright notice. The purpose of a watermark is to identify the work and discourage its unauthorized use. Foxit PDF SDK allows applications to create, insert, release, and remove watermarks.

PDF layers

Users can selectively view and hide the contents in different layers (Optional Content Groups (OCGs)) of a multi-layered PDF document. Multi-layers are widely used in many application domains such as CAD drawings, maps, layered artwork, and multi-language documents.

Pressure sensitive ink (PSI)

PSI allows users to write and draw on PDF document just as they would on paper by providing precise control to capture ink subtleties. Users can more finely control the appearance of their annotations, such as custom thickness, color, opacity, and texture (for example, a brush texture).

Text manipulation

Developers can implement text features in their application – to extract, select, search, and retrieve text in PDF documents. It also can be used on the server side to provide text to search index services. The text engine is much faster than other PDF engines.

Page object edit

A page object is a feature that empowers developers with the ability to easily manipulate text, path, image, and FormX objects. Developers can add and delete PDF objects in a page and set specific attributes. Using the page object edit API, users can programmatically create PDF pages from object contents. Other uses of page object are to add headers and footer, add images, and generate a template PDF on demand.

Lower level PDF objects

The Foxit PDF SDK provides access lower level PDF Object. It provides access to the catalog dictionary, the root to access lower level PDF objects. It also provides multiple methods to read, edit, and add onto lower level objects, such as array, dictionary, integer, string, etc. This allows developers to get and edit any information in PDF files – any functionality not available in the high-level APIs can be implemented using the lower-level APIs.

Forms and JavaScript

PDF forms are a powerful method to fill out forms and to gather data. Completed forms can then be saved and data can be saved to back end databases. The Foxit PDF SDK allow developers to:

  • View existing forms
  • Modify form fields
  • Add and remove form fields
  • Create new forms
  • Allow users to fill in forms
  • Perform form field JavaScript
  • Export and import form data by FDF(Forms Data Format) file
  • Access form data
  • Set or read form field values and properties


Many applications need to apply information rights management protections on files containing confidential information to govern who can read, print, annotate, and modify those files. Foxit PDF SDK provides a range of encryption and decryption functions to meet different levels of document security protection. It allows developers to implement password encryption and certificate-driven encryption or use their own security handler for custom security implementation. It provides support for Standard PDF security handler (40 and 128 bit RC4 encryption), support for 128 bit AES (Advanced Encryption Standard) encryption, support for custom security handlers, allows developers to set or modify security permissions associated with a document, and allows developers to remove encryption from existing PDF documents.

The SDK also provides APIs to integrate with Microsoft® Rights Management Services. These APIs allow developers to work with the Microsoft RMS SDK to both encrypt (protect) and decrypt (unprotect) PDF documents.

In addition to rights management and encryption/decryption function, Foxit PDF SDK also features redaction tools. These allow confidential information to be protected aiding in compliance and security.

Document/page actions

Document and page actions determine specific actions to be performed when opening, closing, saving, and printing a document. For example, if a PDF form could have an action to submit the form upon closing the form. Developers can get and set the document/page level action information which is defined in the document.

Document attachment

Document attachment allows developers to support document level attachments in their applications. Users can add, edit, remove, and view any documents to PDF files quickly and easily. It also allows applications to get information of the attachments asynchronously, such as checksum, description, file name, create and modified time, and file size.

Image conversion

The ability to read, create, and convert various type of images, such as BMP, JPG, PNG, TIF, and JPX.


A barcode is an optical machine-readable representation of data relating to the object to which it is attached. Originally barcodes systematically represented data by varying the widths and spacing of parallel lines, and may be referred to as linear or one-dimensional (1D). Later they evolved into rectangles, dots, hexagons and other geometric patterns in two dimensions (2D). Although 2D systems use a variety of symbols, they are generally referred to as barcodes as well. Barcodes are widely used in many industries to improve data management and accessibility, strengthen access control systems, and increase productivity. This innovative technology is cost-effective and easy to implement. Plus, it allows companies of any size and in any industry to utilize barcodes for unlimited applications. It provides APIs to generate a barcode bitmap from a given string. Supported barcode types include 1D barcode (Code39, Code128, EAN8, UPCA, EAN13, and ITF) and 2D barcode (PDF417 and QR).


A wrapper provides a way for an application to save any binary data related to a PDF document. Usually the binary data will be a PDF file. For example, when opening an encrypted PDF document, users may get an error message explaining they do not have access to this document. In this case, users can still access wrapper data even they do not have permissions to the PDF content. Developers can generate wrapper PDF and also it provides methods to get the wrapper information from existing wrapped PDF files.

Content margin

Usually every page has some areas without any visible content in the margins – top, bottom, left, and right. On embedded devices, this real estate is very precious for display and valuable to use this space more efficiently. Content margin provides a way to reduce the borders of a page to the possible space. With this minimum border, applications can display a page as large as possible in a relatively small device screen, and this will obtain a better user experience under the same screen conditions. The Foxit PDF SDK supports two modes – analyzing bounding box of all page contents and detecting paths for background and images.

Marked content

Marked content helps to organize the logical structure information in a PDF document and enables stylized tagged PDF. Tagged PDF has a standard structure types and attributes that allow page content to be extracted and reused for other purposes. In PDF document, a portion of content can be marked as marked content element. The Foxit PDF SDK provides APIs to add, edit, and remove marked content with a page object.


Extend Microsoft RMS encryption and decryption features to the library for protecting PDF documents.

PDFium API support

Porting applications from PDFium to the commercially supported Foxit PDF SDK package is easy with built-in support for PDFium APIs. Make sure to specify that you want the package that includes PDFium API support when you place your order.



  • Render PDF to bitmap
  • Render PDF to Windows Device Context
  • Render PDF to Apple quartz context
  • Progressive processing


  • Access document bookmarks
  • Perform document JavaScript
  • Open password protected documents
  • Viewer preference
  • Get metadata/doc properties
  • Get all fonts in a document
  • Check whether a document contains form field
  • Get the document trailer dictionary
  • Get document level action info
  • Access document level attachment
  • Save document level attachment to file
  • Get page label
  • Get wrapper document
  • Check whether a PDF document is a portfolio PDF
  • Get font dictionary


  • Get page index
  • Get content margin of a page
  • Get page boundaries (media box, crop box…)
  • Get page dictionary
  • Get rotation
  • Perform page JavaScript
  • Get page action
  • Check page transparency
  • Get page thumbnail


  • Parse textual information
  • Text extraction
  • Search
  • Get layer's information of the searched result
  • Copy & select text
  • Extract URL formatted link
  • PDF to text


  • Check linearized
  • Index of first available page
  • Check document availability
  • Check page availability
  • Check form availability
  • Allows to render and display of pages before the entire document data is available

PDF Object

  • Access low level PDF Objects
  • Get catalog dictionary
  • Get encryption dictionary


  • Reflow text and images to fit the device screen size
  • Set the top margin

PDF Layers

  • Access all PDF layers
  • Traverse layer tree
  • Set the opposite visible state of every PDF layer


PDF Document

  • Save document
  • PDF document creation (not PDF conversion)
  • Add and edit bookmarks
  • Insert, edit, remove document level attachment
  • Set metadata and doc properties
  • Set viewer preference
  • Page organizer (PDF split & merge)
  • Wrapper files
  • Embed font to document
  • Set page label
  • Set page mode
  • Linearize PDF files

PDF Page

  • Create new page
  • Delete a page
  • Flatten a page
  • Set/edit page action
  • Set page property such as media box, index, rotation
  • Set page index
  • Transform a page with a specified matrix
  • Set page thumbnail

Access and Edit Page Object

  • Text
  • Check object transparency
  • Get and edit content mark
  • Extract page as Form XObject
  • Image
  • Form XObject
  • Path
  • Transform a page object with a specified matrix
  • Convert text object to path object
  • Delete Page Object

PDF Layers

  • Set layer name
  • Add/remove layers
  • Edit layers

PDF Object

  • PDF object access and edit (array, dictionary, ...)
  • Get color space of image object

Image Conversion

Image Conversion

  • bmp conversion (BMP to PDF and PDF to BMP)
  • TIF conversion (TIF to PDF and PDF to TIF)
  • PNG conversion (PNG to PDF and PDF to PNG)
  • JPX conversion (JPX to PDF and PDF to JPX)
  • JPG conversion (JPG to PDF and PDF to JPG )
  • Image conversion between above image types (Not support to generate GIF file)
  • GIF conversion (GIF to PDF)



  • View existing forms
  • Modify form fields
  • Add and remove form fields
  • Create new forms
  • Allow users to fill in forms
  • Perform form field JavaScript
  • Export and import form data by XML/FDF/XFDF file
  • Access form data
  • Set or read form field values and properties



  • Get annotations
  • Create
  • FDF import and export
  • Get annotations by tab order
  • Import/export all annotations
  • Get an annotation’s dictionary
  • Edit
  • Remove
  • Set status
  • Set Z-order
  • Search annotations

Supported Annotation Types

  • Text (note)
  • Free text (typewriter)
  • Line
  • Square
  • Circle
  • Polygon
  • Polyline
  • Highlight
  • Underline
  • Squiggly
  • Strikeout
  • Stamp
  • Caret
  • Ink (pencil)
  • Popup
  • File attachment
  • Watermark


  • Create from image
  • Create from bitmap
  • Remove all watermarks from a page
  • Create from text
  • Create from page
  • Get/remove a specified watermark from a page


  • Import and export annotation data



  • Generate barcode bitmap

Microsoft RMS Integration

Microsoft RMS Integration

  • Protect (encrypt) file
  • Un-protect (decrypt) file



  • Certificate
  • Remove document permissions
  • Password
  • Set document permissions
  • Custom Encryption
  • Redaction Tools

Pressure Sensitive Ink


  • Generate PSI
  • Convert PSI bitmap to PDF Annotation

Request for Quotation

Thank you for your interest in Foxit WebPDF Viewer, the only easy to use but powerful development solution to integrate high quality PDF rendering capabilities to your applications. Please fill out this online questionnaire, and we will get back to you with a quotation as soon as possible.

  • 1. The SDK quotation you received by email will be valid for 30 days. You may need to contact the Foxit sales team for an updated license quotation if you want to purchase the SDK more than 30 days after you receive the original SDK quotation.
  • 2. * are required fields