Apitron PDF Kit
Apitron PDF Kit is a .NET component that provides API for creating, editing, digitally signing and manipulating the content of PDF documents. It supports adding text, images, drawings, annotations and basically all available content types defined by the PDF specification. The library contains 100% managed code and is available for any .NET framework version starting from 2.0. Xamarin/MONO, Silverlight and Windows Phone versions are provided in addition to the main builds.
For version history, purchasing or downloading visit the Apitron PDF Kit product page.
Supported PDF versions and subtypes
Documents saved using PDF versions starting from 1.4 until 2.0 can be opened, edited and saved, with PDF 2.0 being the latest version of the specification . Files can be normal, tagged, password-protected, signed, incrementally updated. PDF/A is supported as well, namely PDF/A-1A, PDF/A-1B, PDF/A-2A, PDF/A-2B, PDF/A-2U (unicode).
Support for digital signatures
The digital signing of PDF documents is implemented with extensibility in mind. So in addition to providing the own implementation for the common standards, the product supports third party signing implementations that makes it suitable for using hardware certificate storages like Suisse ID, Bank ID and others issued by governments, affiliated parties or large corporations which integrate with target OS using custom Crypto API drivers or tokend implementations. OCSP responses and CRLs combined with timestamps from third party servers can be embedded as well.
The Apitron PDF Kit library can be used to create cross-platform desktop, mobile, web and cloud solutions. Using this component you'll be able to create or build applications and services for:
- Windows desktop systems (Windows Forms, WPF, Silverlight, console apps, windows services)
- Windows Phone 8.1\10, Windows Store and Windows Runtime, Windows 10 UWP
- Xamarin.Android, Xamarin.iOS, OS X (using MONO or Xamarin)
- Azure Web or Worker Roles, Azure Web Jobs
- Any system where .NET, .NET Core or MONO implementation exists
using command line utilities or any suitable IDE e.g. Visual Studio, Visual Studio for Mac, Visual Studio Code, MonoDevelop etc.
See cross-platform development using Apitron PDF Kit article for more information.
Features from functional perspective
- Extract, modify and add graphics (text, images, drawings)
- Split or merge PDF documents
- Fill or create PDF forms, FDF support
- Create multi-layer PDF documents with optional content groups ( OCG )
- Add or remove document fields
- Use bidirectional or right-to-left text to create page content
- Examine resources within a document - fonts, embedded files
- Digitally sign PDF documents and validate existing signatures in PDF documents
- Search text in PDF documents and extract intelligently formatted text
- Protect document with passwords, digital certificates or custom implementation of security settings
- Work with navigation objects, e.g. create bookmarks or links
- Annotate PDF documents using all available annotation types
- Use all font formats defined by specification: TrueType, OpenType, Type3, Type1, Type0
- Use custom fonts and automatically create and embed font subsets
- Use the following colorspaces for drawing: Device (RGB, CMYK, GRAY); CIE-based (CalRGB, CalGRAY, Lab, ICCBased - via ICC color profile); Special (Pattern, DeviceN, Indexed, Separation)
- Quickly create PDF documents from a list of images or scans
- Implement custom html-like markup to PDF conversion
- Generate PDF files using external xml templates
- Save document to other “subtypes” of PDF – Linearized or PDF/A
- Use external signer implementations based on Hardware Secure Modules (HSM) or signing certificates stored on USB sticks or other removable media
- Portfolio PDF
- Unencrypted wrapper support
- Associated Files
- Add and manage attachments
- Text extraction (Formatted, Tagged, HTML, Raw)
- Add annotations, and define fields appearance
- Resources replacement support
- Password-security handler, public key security handler, custom security handlers and encryption options support
- Perform incremental updates
Features mapped to specification structure
- Extract, modify and add graphic objects (Paths, Text, XObjects, Inline images, Shading objects)
- Graphics State
- Graphics State Stack
- Graphics State operators and parameters
- Support for path construction, path-painting and clipping operators
- Form XObjects
- Optional content (layers)
- Text state parameters and operators
- Text Objects
- Simple fonts
- Composite fonts
- Embedded font programs (fonts)
- Extraction of Text Content
- Interactive Features
- Viewer preferences
- Document-level navigation
- Page-Level navigation
- Interactive forms
- Digital signatures
- Document Interchange
The library can be divided into two large parts, demonstrating different approaches to PDF creation and manipulation. Being independent from each other they share several common objects and can be used together to achieve a complex result.
This part is built around the FixedDocument class and provides “classic” approach for PDF manipulation. It has 100% mapping to spec-defined entities and can be used for every task where the developer needs precise control over the things which are to be put on PDF page and the way it should be done. The developer can get access to all drawing commands and content of the page; everything in PDF document can be manipulated using this API. See the article Fixed layout API for the details.
This part is built around the FlowDocument class and provides innovative and flexible approach for generating PDF documents using styles-based, html- and css- like document model. Developers can use it when they need automatic layout rules applied to the content blocks. The developer doesn't set the explicit position of content elements on page, but rather control the layout behavior using built-in styling mechanism similar to how the CSS is used with HTML. Content for the document has to be built using predefined content elements, e.g. TextBlock, Image, Grid etc. while the flow layout engine performs automatic pagination or splitting if necessary. See the article Flow layout API for the details.
Scalability and development process
File processing and parsing is being done using all available processor cores, so applications are scaling well when you increase the processing power. It's especially important for server-side/cloud solutions. The build system use continuous integration including automated testing environment running thousands of test every day, and ensuring the component’s solidness and reliability. It helps the dev team to quickly track and fix possible problems before the new version is released. Customers' contribution is always welcome, so if you find any problems don't hesitate to contact us with your suggestions.
All Apitron's software components employ the same licensing scheme described in details in a separate article.