Foxit PDF SDK 4.x/5.x module breakdown
Break down of the Module package.
Note: Please read the list like this “Module package – Module included.”
Standard – Renderer, Image (write for Bitmap only), PDF Base, PDF Document(Read), PDF Async(read), PDF Page (Read), PDF Object (Read), PDFTextPage(Read), PDF Reflow(Read), App, Base
Edit – Image(Read), PDF Document(Write), PDF Page(Write), PDF Object(Write), PDF Page Object(Write)
Form – PDF Annot(Read), PDF Form(Write), Document (Write)
Annotation – Image(Read), PDF Annot(Write), PDF Watermark(Write), FDF Document (Write)
Barcode – Barcode(Write)
Signature – Image(read), PDF Signature(Write)
Security – PDF Security(write)
Image Conversion – Image (write)
PSI – PSI(write)
RMS – PDF Security (write for FoxitRMS and MicroRMS)
Module feature list
● FDF Document (ffdf_document_r.h contains the API for the read features. ffdf_document_w.h contains the API for the write features.)
1. FDF document:
a. Load, create or save FDF document, and get or set PDF path.
b. FDF is used to store PDF form data or annotation data, and it can be shared separately without original PDF file. FDF data can be saved as traditional FDF file or other file formats. At present, FDF and XFDF are supported.
2. FDF annotation:
a. Enumerate annotations in FDF, export markup annotation from PDF to FDF or import markup annotation from FDF into PDF page.
b. FDF annotation and PDF annotation use the same presentation, but they are different. User can use functions defined in fpdf_annot_r.h to retrieve properties.
● PDF Annotations(fpdf_annot_r.h contains the API for the read features. fpdf_annot_w.h contains the API for the write features.)
1. Annotation:
a. Load, add or remove annotations in page, enumerate annotations by filter, access common properties of annotations, control markups, access trigger actions of annotations, render annotations or reset appearance.
b. Annotations contain a lot of interactive operations in PDF. They increase practicability and provide valuable extension to applications. Markup consists of several advanced features which involve contents and replies, state, group managements. Widget is a special type of annotation which represents a terminal node of PDF form field. In Foxit PDF SDK, form control is a synonym to widget.
c. Note: Sound, Movie, Screen, PrinterMark, TrapNet and 3D annotations are not fully supported in the current version of Foxit PDF SDK. Current functions only provide common access to them, not support access to their data. Widget and watermark annotations: Foxit PDF SDK only provides common access to widget, watermark and PSInk annotation in this module. For widget related to form object, please refer to PDF Form module. For watermark annotation, please refer to PDF Watermark module. For PSInk annotation, please refer to Pressure Sensitive Ink
d. Reference: section 8.4 in PDF Reference 1.7 describes annotations in detail.
● PDF Async(fpdf_async_r.h contains the API for the read features.)
1. Asynchronous PDF access:
a. Load a remote PDF file as asynchronous document, retrieve the first page index and determine whether the file data is available.
b. Asynchronous PDF is a flexible way to access remote PDF easily. It’s designed especially for PDF files from Internet. Users need not download a remote PDF file fully before accessing it. Only a few data may be enough to display a page. While retrieving a PDF document object, use the function FSPDF_Doc_IsDocAvail to determine whether the data of document level is ready. While displaying a PDF page object, use the function FSPDF_Doc_IsPageAvail to determine whether the data of a page level is ready. If the user wants to access PDF form, use the function FSPDF_Doc_IsFormAvail to determine whether the form is ready.
c. Note: while getting a PDF document object which is returned by the function FSPDF_Doc_AsyncLoad, it is not a full available object, call function FSPDF_Doc_IsDocAvail to make sure it’s available really.
● PDF Base(fpdf_base_r.h contains the API for the read features.)
1. PDF module:
a. Initialize or finalize PDF module.
b. Note: PDF module should be initialized at first before using any PDF features.
2. Common definitions: involve PDF permissions, page areas, alignment and default appearance. These definitions are used by features in PDF module.
3. PDF rendering context:
a. Create a rendering context, and set its properties.
b. PDF rendering context is used to render PDF page contents. It uses a renderer to render PDF page objects into a device. Please refer to header file fs_renderer_r.h for renderer.
4. PDF Actions:
a. Definitions for PDF actions, initialize or clear action data object.
b. Actions are executed when a trigger is fired. Application can retrieve action data by functions in the current version of Foxit PDF SDK, and execute actions according to types. Document, bookmark, page, annotation and form field have their own actions.
c. Reference: section 8.5 and 8.6.4 in PDF Reference 1.7 describe how to deal with PDF actions.
● PDF Document(fpdf_document_r.h contains the API for the read features. fpdf_document_w.h contains the API for the write features/)
1. PDF document:
a. Load, reload, create or close document, import PDF pages from another document, and save PDF files.
b. Users can reload a PDF document when they need to reset password, change decryption settings or other purposes.
c. Note: function FSPDF_Doc_StartImportPages can merge the same resources in one call, and duplicate objects may be generated in several calls to one source document.
2. Document objects: get catalog dictionary, document information dictionary and encryption dictionary.
3. Document properties:
a. Get password type, retrieve encryption parameters, and get user permissions, display mode, file version or modification mark.
b. Modification mark is used to tell user whether the contents of document is changed or not.
4. PDF page: get the count of total pages, and get a PDF page object by index.
5. PDF wrapper:
a. Judge whether a document is a wrapper or not, and get wrapper offset and information data.
b. PDF wrapper is an extension standard which is created by Foxit Software Inc.. It’s used to display some prompt information in a wrapper document commonly. For example, use wrapper document to prompt readers to order special viewer to open an encrypted file.
6. Document trigger actions:
a. Enumerate trigger actions of PDF document object, modify or remove trigger actions.
b. Note: Foxit PDF SDK doesn’t contain functions to execute actions. In a viewer or reader, action should be executed by application.
c. Reference: section 8.5.2 in PDF Reference 1.7 describes trigger actions.
7. Page label:
a. Convert between page index and page label.
b. Reference: section 8.3.1 in PDF Reference 1.7 describes page labels.
8. PDF metadata:
a. Get or set string types of metadata, and get or set date and time types of metadata.
b. Metadata contains some general information about document title, author, creation or modification date, or others.
c. Reference: section 10.2 in PDF Reference 1.7 describes metadata.
9. PDF bookmark:
a. Create, clone or release iterator of bookmark, change position of iterator, get or set properties of bookmark, access actions of bookmark, insert or remove bookmark item.
b. PDF bookmark is also called outline. It allows user to navigate PDF document easily by selecting one outline. One bookmark contains a destination or actions to indicate how to response when user selects it. PDF bookmark is a tree-structured hierarchy.
c. Note: some PDF files may contain a lot of bookmarks. It takes a long time to enumerate all data in a whole PDF file. It’s recommended that only expanded children are retrieved at once.
d. Reference: section 8.2.2 in PDF Reference 1.7 describes bookmark.
10. Viewer preferences:
a. Get or set properties of viewer preferences.
b. Viewer preferences contain some settings about how a PDF viewer should be presented on screen or in print.
c. Reference: section 8.1 in PDF Reference 1.7 describes viewer preferences.
11. PDF attachments:
a. Load, enumerate, create or remove document-level attachments, retrieve or change properties of an attachment, save attachment data to file or set a file to attachment object.
b. There are two levels of attachments: one is document-level, and the other one is page-level. Attachments in document level are embedded in PDF file without appearance, and attachments in page level present as annotations.
c. Reference: section 3.10 in PDF Reference 1.7 describes something on document-level attachments, and FileAttachment annotation in section 8.4.5 describes page-level attachments.
● PDF Form(fpdf_form_r.h contains the API for the read features. fpdf_form_w.h contains the API for the write features.)
1. PDF form:
a. Load PDF form, enumerate form fields for form controls, export or import FDF data, get or set properties of PDF form.
b. PDF form is static form which consists of form field. Form fields contains one or more form controls. In PDF reference, form control is called as widget, which is a type of annotation. Form fields contain value data, and form controls provide appearances of form fields. Form controls are used to provide interactions.
c. Note: at present, Foxit PDF SDK provides only data-level access to PDF form.
d. Reference: section 8.6 in PDF Reference 1.7 describes full information of PDF form.
2. Trigger actions:
a. Enumerate trigger actions of form field, modify or remove trigger actions.
b. Note: Foxit PDF SDK doesn’t contain functions to execute actions. In a viewer or reader, action should be executed by application.
c. Reference: section 8.5.2 in PDF Reference 1.7 describes trigger actions, and section 8.6.4 describes more trigger actions of form fields.
3. Form fields:
a. Get or set properties of form fields, and enumerate form controls to a form field.
b. Different types of form fields consist of different properties.
c. Reference: section 8.6.3 describes the properties of form fields.
4. Form controls:
a. Get or set export value, get or set checking state, and render form controls.
b. Form controls can be accessed as widget annotations. Caller can call functions defined in /ref FPDFANNOT “PDF Annotation” module to access common properties of form controls.
c. Reference: section 8.4.5 describes the properties of widgets.
● PDF Page Objects(fpdf_pageobjects_r.h, fpdf_markedcontent_r.h, and fpdf_layer_r.h contains the API for the read features. fpdf_pageobjects_w.h, fpdf_markedcontent_w.h, and fpdf_layer_w.h contains the API for the write features.)
1. Page objects:
a. Enumerate page objects, get page objects by position, insert or remove page objects, and generate contents of page objects.
b. Page content consists of page objects. Each page object contains its state information, data and instructions for rendering. A form XObject is not only a page object, but also a container. A form XObject consists of a set of page objects or sub Form XObjects.
c. Note: PDF page should be parsed before page objects can be accessed.
d. Reference: Chapter 4 and 5 in PDF Reference 1.7 describe how page contents are expressed.
2. Page object: get type of a page object, clone a page object, and access properties or state data.
3. Text object: get or set text state, access Unicode string of a text object, and create a text object.
4. Path object: get or set path data, access fill mode and stroke state, and create a path object.
5. Image object: clone bitmap object associated to an image object, create an image object, and set image data.
6. Form XObject object: get page objects associated to a Form XObject object, and create a Form XObject object.
7. Clipping data:
a. Enumerate clipping path objects or clipping text objects, add or delete clipping path and text object, and clear all clipping data.
b. Each page object may have its own clipping data. In PDF, clipping data may be path objects or text objects. Multiple clipping objects form intersections or union results.
8. PDF marked content:
a. Access to PDF page object’s marked content, retrieve marked content object, add a new marked content item and delete a marked content item..
b. Reference: Section 10.5 in PDF Reference 1.7 describes Marked Content of PDF Content Stream.
9. PDF Layer Context access: create and release PDF layer context, merge or copy state of PDF layer context objects.
10. PDF Layer access:
a. Enumerate all layers of a PDF document, get name of a PDF layer, set and get visibility of a PDF layer.
b. Note: If a PDF layer is invalid, it can’t be viewed, designed, printed or exported.
11. Note: most functions in this module are not thread safe, caller should ensure not to call them to process page objects in a same page across multi-threads or should maintain thread safety by application self.
● PDF Migration(fpdf_migration_r.h contains the API for the read features.)
1. Support DLL SDK and SDK4.0 documents and pages migration.
2. Support EMB2.0 SDK and SDK4.0 documents and pages migration.
3. Support EMB1.0 SDK and SDK4.0 documents and pages migration.
● PDF Ojbects(fpdf_objects_r.h contains the API for the read features. fpdf_objects_w.h contains the API for the write features.)
1. Object data retrieval: get object number or object type, and get object data.
2. Object creation: create a PDF object and initialize it with given data.
3. PDF array: enumerate array elements, get or set element object, insert or add element object.
4. PDF dictionary: get or set properties (key/value pairs) of dictionary.
5. PDF stream: get stream dictionary, get or set stream data, and export or import stream data.
6. PDF reference: get the referred object.
7. Note: most functions in this module are not thread safe, caller should ensure not to call them to process one document across multi-threads or should maintain thread safety by user application.
8. Reference: section 3.2 in PDF Reference 1.7 describes PDF objects.
● PDF Page(fpdf_page_r.h contains the API for the read features. fpdf_page_w.h contains the API for the write features.)
1. PDF page:
a. Parse page contents, and clear resources occupied by page.
b. Before rendering page or accessing page objects, a page should be parsed at first. When call function FSPDF_Page_Clear to clear a page, all page contents and relative resources will be released.
c. Note: a page handle will not be invalid until the current document is closed.
2. Page attributes: get or set page index, page size, rotation and page boundaries.
3. Page trigger actions:
a. Enumerate trigger actions of PDF page object, modify or remove trigger actions.
b. Note: Foxit PDF SDK doesn’t contain functions to execute actions. In a viewer or reader, action should be executed by application.
c. Reference: section 8.5.2 in PDF Reference 1.7 describes trigger actions.
4. Page matrix:
a. Get page transformation matrix between PDF page coordinates and rendering device coordinates.
b. PDF page has private coordinates which Y-axis is upward but most types of rendering devices have downward Y-axis. Besides, some other metrics are different as well, such as DPI.
Transformation matrix is used to output page contents to accurate position and size in rendering devices. Caller can call functions for matrix defined in fs_base_r.h header file to do transformations for points or rectangles.
5. Page rendering:
a. Calculate bounding box of page contents by analyzing page contents, and render page contents as a progressive process.
b. Bounding box of page contents may be not clear and different to trimming box, for example, a page is a scanned image.
c. Reference: section 10.10.1 in PDF Reference 1.7 describes information about page boundaries.
6. Page editing:
a. Create a new page, delete a page, and flatten page.
b. Flattening process is to merge contents of annotations into page contents. Annotations separate from page contents, and they are for interaction purpose.
● PDF Reflow(fpdf_reflow_r.h contains the API for the read features.)
1. Reflow PDF page:
a. Create or release a page-reflow object, set page size and line space for a page-reflow object, and start reflowing in a progressive process.
b. PDF page-reflow is a common feature to display page contents in a small screen device. It re-lays out page contents.
c. Note: the progressive process of page-reflow should finish before rendering reflowed result or accessing its data.
2. Render reflowed page:
a. Get content size of a reflowed page, get transformation matrix for a reflowed page, and render a reflowed page.
b. When a page is reflowed, its coordinates are different. Caller should get a new transformation matrix to display.
3. Data of reflowed page:
a. Get focus data for a position, retrieve focus position from focus data, and get text page object.
b. In order to track a position in a reflowed page, Foxit PDF SDK uses a focus data to represent the position. Caller can store focus data or save the data to file so that the position can be retrieved later. Focus is similar to bookmark or destination in PDF, but it’s simpler.
c. Note: Functions defined in fpdf_textpage_r.h can be used to get text information.
● PDF Security(fpdf_security_r.h contains the API for the read features. fpdf_security_w.h contains the API for the write features.)
1. Password security:
a. Encrypt a PDF file by standard password encryption algorithm.
b. PDF reference defines a standard password encryption algorithm. Function FSPDF_Security_StartPasswordEncryption is used to do password encryption, it provides a progressive process. To open a password-encrypted PDF file, pass password as parameter directly when call function FSPDF_Doc_StartLoad or FSPDF_Doc_StartReLoad.
c. Reference: section 3.5.2 in PDF Reference 1.7 describes standard password encryption.
2. Customized security:
a. Register or unregister a customized security handler, encrypt a PDF file by using customized encryption algorithm.
b. Customized security handler is an extension according to PDF reference. To encrypt a PDF file, call function FSPDF_Security_StartCustomEncryption in a progressive process. To open customized encryption PDF files, user should call function FSPDF_Security_RegisterHandler to register the corresponding security handler at first.
c. Note: customized security is not a common solution, but it’s very effective in most cases. Implementors should ensure thread safety in FSPDF_SECURITYHANDLER.
d. Reference: section 3.5 in PDF Reference 1.7 describes the definition of security handler.
3. Certificate security:
a. Set certificate security handler, encrypt a PDF file by using public-key technologies.
b. Certificate security handler uses the industry standard Public Key Cryptographic Standard Number 7 (PKCS#7) to encode recipient list, decryption key, and access permission information. In PDF, use X.509 public key certificate to represent a recipient.
c. Note: FSPDF_SECURITYHANDLER_CERT is used to open X.509 certificate and implementors should ensure thread safety.
d. Reference: section 3.5.3 in PDF Reference 1.7 describes technologies on certificate security.
4. Foxit DRM:
a. Set Foxit DRM security handler, verify encryption parameters in Foxit DRM files, get or set parameter values, and encrypt a PDF file by Foxit DRM.
b. Foxit DRM is a corporation-level standard security technologies. It provides more flexible security solutions. To open a PDF file encrypted by Foxit DRM, call function FSPDF_Security_VerifyFoxitDRMEncryptionParams to check whether the encryption parameters are valid or not. Call function FSPDF_Security_StartFoxitDRMEncryption to encrypt a Foxit DRM PDF file in a progressive process.
5. RMS security:
a. Register or unregister a RMS security handler, encrypt a PDF file by using RMS encryption algorithm.
b. RMS security handler is a special custom security handler, which is implemented by application, using AD RMS SDK. Before doing RMS encryption or decryption, function FSPDF_Security_RegisterHandler should be called first to register the corresponding security handler with specific filter. To encrypt a PDF file, call function FSPDF_Security_StartRMSEncryption in a progressive process.
c. Note: RMS encryption and decryption algorithm is usually based on AD RMS SDK, which should be implemented by application. Implementors should ensure thread safety in FSPDF_SECURITYHANDLER.
d. Reference: section 3.5 in PDF Reference 1.7 describes the definition of security handler, and relative specifications about Microsoft RMS.
● PDF Signature(fpdf_signature_r.h contains the API for the read features. fpdf_signature_w.h contains the API for the write features.)
1. Signature handler:
a. Register signature handler, and set an icon provider.
b. Signature handler is used to sign a PDF document or verify a signature. It provides a common way to let application deal with the whole process according to their control purpose. Signing a document and verifying a signature may spend a long time.
c. Note: implementors should ensure thread safety to FSPDF_SIGNATUREHANDLER.
2. PDF signature:
a. Enumerate signatures in document level, add or remove a signature object.
b. PDF Reference defines several types of signatures. Only document signature is supported in current Foxit PDF SDK.
c. Reference: section 8.6.3 in PDF Reference 1.7 describes signature fields, and section 8.7 describes technologies of signature.
3. Signature properties:
a. Get or set properties of signature, access certificate chain or clear data of signature.
b. In order to supplement requirements from customers, Foxit PDF SDK expands some new properties to signature. They are DistinguishedName, Text, Bitmap, AppearanceFlags.
4. Verify:
a. Verify signature in a progressive process, get state of a signature and determine whether a signature is signed or not.
b. Foxit PDF SDK will call callback functions defined in FSPDF_SIGNATUREHANDLER to verify signature.
5. Signature appearance: render a signature in PDF render context, or reset appearance of a signature.
● PDF Text(fpdf_textpage_r.h contains the API for the read features.)
1. Text page:
a. Load or release a text page, retrieve characters data, get a character by position or direction.
b. Text page can be loaded from a PDF page directly or be retrieved from a reflowed page.
2. Text selection:
a. Select text by characters range or by a rectangle area, retrieve bounding box of selected area, and enumerate text pieces in selected result.
b. Text selection can be used for not only pure selection but text search and hyperlink extraction. Text selection is a common expression a sequential text data.
3. Text search: start a text search in a PDF page, find next or previous occurrence, and get search result as a text selection object.
4. Text link: extract hyperlinks from page contents, enumerate hyperlinks and get the result as a text selection.
● PDF Watermark(fpdf_watermark_r.h contains the API for the read features. fpdf_watermark_w.h contains the API for the write features.)
1. Watermark:
a. Count watermarks in a specific page.
b. Get size from a specific watermark.
c. Create a watermark from a text, image, bitmap or PDF page, retrieve watermark size, insert or remove a watermark.
d. A watermark can be created as the content of a page directly, or be created as an annotation in a page. If create a watermark from a text, call the function::FSPDF_Watermark_CreateFromText. If create a watermark from an image, call the function FSPDF_Watermark_CreateFromImage. If create a watermark from a bitmap, call the function FSPDF_Watermark_CreateFromBitmap. If create a watermark from a PDF page, call the function FSPDF_Watermark_CreateFromPage.
e. Reference: it’s described in section 8.4.5 of PDF Reference 1.7 about watermark annotation.
● App(fs_app_r.h contains the API for the read features.)
1. Application handler:
a. FSCRT_APPHANDLER provides an extension mechanism between applications and Foxit PDF SDK.
b. There might be some functions which should be implemented by applications but be used by Foxit PDF SDK internally, and Foxit PDF SDK can also send some events to applications for some purpose.
c. Note: currently only PSI defines one event and ejects it to FSCRT_APPHANDLER::OnEvent callback function.
● Barcode(fs_barcode_r.h contains the API for the read features.)
1. Barcode module: initialize or finalize a barcode module.
2. Barcode encoding:
a. Generate a barcode bitmap for the given barcode format and content.
b. There are eight barcode formats supported in Foxit PDF SDK. When a barcode is encoded, width and height of bitmap are calculated internally.
c. Note: the FSCRT_BCModule_Initialize function should be called at first before calling FSCRT_Barcode_GenerateBitmap.
● Base(fs_base_r.h and fs_codec_r.h contains the API for the read features.)
1. Basic definitions: involve definitions for basic types, error codes and variable types.
2. Byte string:
a. In Foxit PDF SDK, byte string is defined as FSCRT_BSTR structure. It is commonly used as input or output parameters.
b. Related functions can used to initialize, clear string data, or set its contents. FSCRT_BSTR shall be UTF-8 format for common string data. It can be used as binary string data in some functions.
c. Note: length is used to judge whether a byte string is terminated rather than ‘�’.
3. UTF-8 conversion: convert strings from UTF-8 to UTF-16LE, UTF-16BE, UTF-32LE or UTF-32BE and reversion.
4. Base-64: encode data to Base-64 string or decode data from Base-64 string.
5. Digest: calculate digest by algorithms: MD5, SHA1, SHA256, SHA384, SHA512.
6. Flate: compress or decompress data by flate or deflate algorithms.
7. File access:
a. Create file object from FSCRT_FILEHANDLER or from file name directly, and retrieve file size.
b. FSCRT_FILEHANDLER is an extension interface to support variant stream I/O.
c. Note: implementers of FSCRT_FILEHANDLER shall make sure thread safety if applications need to support multi-thread.
8. Library management:
a. Initialize library manager or destroy library manager, unlock library with license data, support log file and allocate or free memory.
b. Any applications shall initialize Foxit PDF SDK before call PDF SDK API functions.
c. Note: a log file is used to collect information for debugging. It’s not recommended to set a log file without debugging.
9. Multi-thread:
a. Provide FSCRT_THREADHANDLER to support multi-thread in PDF SDK level.
b. The support to multi-thread makes PDF SDK and applications more robust than before.
10. Common data structures:
a. Involve date, integer or float rectangle, quad points, matrix and path data.
b. These features provide common supports on coordinates.
11. Private data: applications can set some private data into PDF SDK library. Private data can be shared among several executive modules.
12. Common objects: documents, pages and annotations are three types of common objects.
13. Progressive control:
a. Progressive control is designed for long-time-occupancy processes.
b. PDF SDK provide some important functionalities, such as saving PDF or encrypting PDF. They usually take long time to finish. In order to avoid occupying too much time in one thread, PDF SDK introduces the mechanism of progressive control. It can divide one process into several phases and leave time to other threads or processes during between two phases.
14. Font access:
a. Create font, retrieve font properties, or set font mapper.
b. Font is one of the most important resources and is used for text display. Applications can create a new font or get an existing font in PDF.
c. Reference: It’s described in chapter 5 of PDF Reference 1.7 about PDF text and font.
● Image(fs_image_r.h contains the API for the read features. fs_image_w.h contains the API for the write features.)
1. Bitmap:
a. Create or release a bitmap object, retrieve bitmap data, transform a bitmap, conversion of bitmap formats and calculate the bounding box of bitmap contents.
b. Bitmap is one of most important data structures in Foxit PDF SDK. It’s commonly used for rendering PDF pages.
c. Note: On several platforms, there are different bitmap formats defined, but it’s very important to ensure performance to use compatible formats defined by Foxit PDF SDK in applications.
2. Image reading:
a. Load an image file, retrieve an image file format, get frame data and image properties (EXIF informations).
b. Foxit PDF SDK supports six formats of image files:
BMP, bitmap image files;
JPG, joint photographic experts’ group image files;
PNG, portable network graphics image files;
GIF, graphics interchange format image files;
TIF, tagged image file format;
JPX, JPEG-2000 image files.
c. Note: Only GIF and TIF images support multiple frames, while the others only support single frame.
3. Image writing:
a. Create an image file, add a frame into a bitmap, and set image properties (EXIF informations).
b. Foxit PDF SDK doesn’t support to create an image file with GIF format.
c. Note: For all supported image formats here, only TIF image supports multiple frames, the others only support a single frame.
● Obsolete(fs_obsolete.h contains the API for the read features. fs_obsolete.h contains the API for the write features.)
Definitions for all the deprecated macros, structures and functions of Foxit PDF SDK.
Definitions and functions in this module are included in fs_obsolete.h, and not recommend to use them anymore.
● Pressure Sensitive Ink(fs_psi_w.h contains the API for the write features.)
1. Pressure sensitive ink (PSI):
a. Create a PSI object and initialize a canvas, set properties, add points data, render PSI or convert PSI objects to PDF annotations.
b. PSI is defined for manual signature especially, and usually works together with a handwriting board. PSI contains private coordinates, and a canvas is created in its coordinates. Canvas limits operating area and generates appearance of PSI.
c. Note: FSCRT_PSI_ConvertToPDFAnnot requires that PDF module is intialized and a PDF page object is available.
● Renderer(fs_renderer_r.h contains the API for the read features.)
1. Renderer:
a. Create a renderer object, set properties of renderer and draw a bitmap on a renderer.
b. A renderer is a graphics engine. It is created upon a device which is usually a bitmap or graphics devices. In PDF module, a renderer is used by PDF context object to render PDF pages. If applications change properties of a renderer, it will affect subsequent drawing results. Flags for blend modes, constants for line joins and line caps are defined in this header file but not supported at present.
c. Note: currently a windows renderer can be created as a platform-based engine which is defined in windows/fs_renderer_windows_r.h.
d. Reference: It’s described in chapter 4 in PDF Reference 1.7 about graphics states.
Updated on April 4, 2017