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 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 when of the document when the data for that page is available.
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, 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.
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).
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.
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.
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.
Answered quickly and accurately.
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.
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.
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 boarders 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 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.