Do you own a Debenu Quick PDF Library 12/11/10/9/8/7? Upgrade to Debenu Quick PDF Library 13!

Foxit Quick PDF Library

Quick PDF Library 8.12 Beta 2 Released, 64-bit Testers Welcome

October 11, 2011

Quick PDF Library 8.12 beta 2 has been released and is ready for download and testing.

Version 8.12 includes native 64-bit support for the Delphi, ActiveX and DLL editions of Quick PDF Library. It also includes numerous enhancements, new functions, bug fixes and support for Delphi XE2.

If all goes well and no show-stopping issues are found this will be the final beta release of version 8.12 so we strongly encourage all developers who are interested in 64-bit support to test this latest beta release.

The 8.12 beta 2 installer can be downloaded from the button below.

Release Notes

Enhancements

  • Adjustments for compilation on Delphi XE2 (Win32 and Win64)
  • Win64 versions of the DLL, ActiveX and Lite editions
  • Graceful handling of zlib streams with incorrect checksums
  • Added support for OpenType fonts that use CFF outlines
  • Improvements to text extraction, including better handling of Unicode characters
  • Support for retrieving/setting the printer DEVMODE structure
  • Text extraction data now optionally reports the original CMYK color of text
  • Optimizations to memory usage during rendering
  • Integration of a new AES encryption library
  • Optimization of CMap parsing
  • Added Ansi function aliases to the DLL edition

New functions

  • SetTextExtractionArea
  • GetPrinterDevModeToString
  • SetPrinterDevModeFromString
  • AddOpenTypeFontFromFile
  • SetAnsiMode

Bug fixes

  • Bug fix in DrawHTMLText function, return characters in correct MSB/LSB order
  • Memory usage reduction for certain mono images
  • Bug fix in handling of CCITT image data (widths less than 8 )
  • Drawing of wrapped text corrected
  • Restored image extraction functionality for certain image types
  • Corrected character widths for TrueType fonts added with a codepage
  • Bug fix in DrawHTMLText function, high order bytes of Unicode characters now correct
  • Corrected handling of form field fonts
  • Improvements to word wrapping, multiple spaces no longer collapsed into a single space

Technical Notes On Upgrading To Version 8

There were a number of technical changes to the Quick PDF Library API in version 8, so if you are still using version 7, and have not tried version 8 yet, you should take a look at a recent blog post that we made which outlines the various changes to the API:

Upgrading To Version 8

If you would like to upgrade to version 8 then you can do so on this page:

More information on upgrading to version 8 can be found online here.

Feedback! Any feedback large or small is appreciated. We’ll shortly be planning the next round of exciting new features for Quick PDF Library, so we’d really like to know what you want to see added to the SDK. Don’t be shy, email us at support@quickpdflibrary.com and have your say.

By Rowan | Comments (1) | Posted in News,Quick PDF Library,Releases

Quick PDF Library 8.12 Beta 1, Includes 64-bit Support and Delphi XE2 Support

September 21, 2011

Quick PDF Library 8.12 beta 1 has been released and is ready for download and testing.

This new beta includes 64-bit support for the Delphi, ActiveX and DLL editions of Quick PDF Library, as well as support for Delphi XE2. Though please note that for 64-bit support this is very much a beta release and so you should not use it in a production environment yet. We look forward to hearing all of your feedback on the 64-bit version.

The 8.12 beta 1 installer can be downloaded from the button below.

Release Notes

Enhancements

  • 64-bit support for Delphi, DLL and ActiveX editions
  • Support for Delphi XE2 (Win32 and Win64)

Bug fixes

  • Bug fix in DrawHTMLText function, return characters in correct MSB/LSB order
  • Memory usage reduction for certain mono images

Technical Notes On Upgrading To Version 8

There were a number of technical changes to the Quick PDF Library API in version 8, so if you are still using version 7, and have not tried version 8 yet, you should take a look at a recent blog post that we made which outlines the various changes to the API:

Upgrading To Version 8

If you would like to upgrade to version 8 then you can do so on this page:

More information on upgrading to version 8 can be found online here.

Feedback! Any feedback large or small is appreciated. We’ll shortly be planning the next round of exciting new features for Quick PDF Library, so we’d really like to know what you want to see added to the SDK. Don’t be shy, email us at support@quickpdflibrary.com and have your say.

By Rowan | Comments (1) | Posted in News,Quick PDF Library,Releases

Quick PDF Library 8 API Changes

September 14, 2011

Quick PDF Library 8 is a major new version of Quick PDF Library and contains a few changes to the API that were necessary to provide native support for Unicode and to improve the way secured PDF files are handled by the library. We also took this opportunity to rename some functions which used terms that conflicted with terms used by Acrobat.

This document contains a list of items that developers looking to upgrade to Quick PDF Library 8 should pay attention to. Changes to code may be required in order for your projects to compile using the new version.

1. Changed functions definitions

  • The LoadFromFile, LoadFromString, LoadFromVariant and LoadFromStream functions now have a Password parameter. Note functionality changes below.
  • The ExtractFilePages and GetFileMetadata functions now have a Password parameter.
  • All functions that previously returned or accepted 8-bit character strings (either UTF-8 encoded, WinAnsi encoding or unspecified encoding) now use UTF-16 Unicode strings.
  • Certain functions continue to accept or return 8-bit data, others have been renamed to more easily facilitate working with binary data.
  • All the text drawing functions (such as DrawText, DrawHTMLText) allow the text to be specified using UTF-16 Unicode strings. The fonts automatically convert the text string’s Unicode characters to the appropriate encoding for storing in the content stream.

2. Renamed functions

  • The fullowing functions have been renamed due to the changes from 8-bit to 16-bit strings. The change results in two new functions to replace each original function:

GetObjectSource

GetObjectToString (Delphi and DLL)

GetObjectToVariant (ActiveX)

SetObjectSource

SetObjectFromString (Delphi and DLL)

SetObjectFromVariant (ActiveX)

GetPageContent

GetPageContentToString (Delphi and DLL)

GetPageContentToVariant (ActiveX)

* Note functionality changes listed below

SetPageContent

SetPageContentFromString (Delphi and DLL)

SetPageContentFromVariant (ActiveX)

* Note functionality changes listed below

DAGetPageContent

DAGetPageContentToString (Delphi and DLL)

DAGetPageContentToVariant (ActiveX)

DAGetObjectSource

DAGetObjectToString (Delphi and DLL)

DAGetObjectToVariant (ActiveX)

ExtractFilePageContent

ExtractFilePageContentToString (Delphi and DLL)

ExtractFilePageContentToVariant (ActiveX)

  • In QPL v7 the term “layer” was used to describe a part of a page’s content stream. This conflicted with Adobe’s use of the term “layer” for the PDF feature known as optional content groups. To avoid confusion, all the layer functions have been renamed:

SetLayerOptional

SetContentStreamOptional

LayerCount

ContentStreamCount

CombineLayers

CombineContentStreams

NewLayer

NewContentStream

SelectLayer

SelectContentStream

EditableLayer

EditableContentStream

MoveLayer

MoveContentStream

DeleteLayer

DeleteContentStream

LayerSafe

ContentStreamSafe

UseUnsafeLayers

UseUnsafeContentStreams

EncapsulateLayer

EncapsulateContentStream

RemoveSharedLayers

RemoveSharedContentStreams

3. New functions

  • GetContentStreamToString and GetContentStreamToVariant have been added to replace the functionality previously provided by the GetPageContent function.
  • SetContentStreamFromString and SetContentStreamFromVariant have been added to replace the functionality previously provided by the SetPageContent function.
  • SetTextExtractionOptions was added to provide greater contrul over the text extraction functions.
  • CheckFileCompliance was added to check for PDF/A compliance along with the GetStringListCount, GetStringListItem functions needed to retrieve the compliance test results.
  • SetPDFAMode was added to allow the creation of new PDF/A-1b compliant documents.
  • Other new functions include DrawPDF417Symbul, AddTrueTypeSubsettedFont, SetLineDashEx and SetRenderCropType.

4. Removed functions

  • The SetAdvancePassword and SetPassword functions have been removed. They are no longer necessary because the LoadFrom* functions now have an additional parameter for specifying the password.

5. Changed functionality

  • When the LoadFrom* functions are used to open an encrypted document the objects will be automatically decrypted as necessary. Calls to SetPassword, SetAdvancePassword and Decrypt are no longer necessary to access any parts of an encrypted document. The SaveTo* functions can be used to save an encrypted document and the original encryption will remain in place with any new content automatically encrypted to the existing security settings.
  • The LoadFrom* functions now return 1 on success and 0 on failure. In QPL v7 these functions would return 2 if an encrypted document made use of object streams or cross reference streams. This is no longer necessary as these functions have a new password parameter. If the wrong password is given, the LoadFrom* functions will return 0 and the LastErrorCode function will return error code 404.
  • The Encrypt and Decrypt functions can still be used to add or remove security and full access to the document is possible even after encryption has been applied.
  • In QPL v7, the GetPageContent function returned only a portion of the page’s content stream. The replacement functions GetPageContentToString and GetPageContentToVariant now return the entire content stream of the selected page, not just an individual part.
  • Similarly, the SetPageContentFromString and SetPageContentFromVariant functions now set the entire content stream of the selected page, not just an individual part.
  • The SecurityInfo function returns the active encryption details even though encrypted object in documents are internally decrypted as needed.
  • XMP metadata is now added to new documents and maintained in existing documents. Calling functions like SetInformation will result in the XMP metadata being updated to keep that particular item in the document information dictionary in sync.

 

 

Upgrading to Quick PDF Library 8

September 6, 2011

Quick PDF Library 8 is a major new version of the product which means that the upgrade process is different from the minor version upgrade process, namely, upgrades aren’t free unless you meet certain requirements.

Free upgrades

Customers who purchased version 7 of Quick PDF Library on or after the 1st of June, 2011 (within 90 days of version 8’s release) or who own an active Premium Upgrade Protection subscription are eligible for free upgrades from version 7 to version 8.

Contact our sales team if you fall into this category and we’ll help you out.

Purchase an upgrade

An upgrade from version 7 to version 8 can be purchased at a discount (40% off) through our online store. Look for the products that include “Upgrade License” and “7.x to 8.x” in the product name and then choose which version of those products describes your upgrade situation.

For example, if you own a Single Developer License + Standard Upgrade Protection for version 7 of Quick PDF Library then you will need to purchase the Single Developer Upgrade License + Standard Upgrade Protection (7.x to 8.x) product in order to upgrade to version 8 — though you can choose to buy the Premium Upgrade Protection version of that product if you prefer.

Online Store – Quick PDF Library

Contact our sales team if you have any questions about upgrading.

By Rowan | Comments (7) | Posted in News,Quick PDF Library

Quick PDF Library 8.11 Released, Available for Download and Purchase

We’re excited to announce that Quick PDF Library 8.11 has been released and is now available for download and purchase through our website. This new major release is jam-packed with new features and major enhancements to the usability of the library.

What’s New

  • PDF/A-1b compliant output
  • Support for AES-256 encryption
  • TrueType font subsetting
  • HTML5 renderer output
  • New plain text extraction with natural reading order
  • Support for PDF417 stacked linear barcode symbology
  • Changed API for full Unicode string support
For the full list of changes in 8.11 please visit the product updates page. The press release for this release can be found here.

Evaluate The New Version

A 30 day trial version of Quick PDF Library 8.11 can be downloaded from here. This is a major new version so your old version 7.x license key will not work. The installer will generate a trial license key for you.

Upgrade Offer for Existing Customers

Existing customers are eligible for a 40% discount when purchasing the new version and can do so through our online store. Look for the product that has upgrade in its name with 7.x to 8.x.

Customers who own an active Premium Upgrade Protection subscription can contact our support team for a free upgrade.

What’s Next

Embarcadero released a 64-bit compatible version of the Delphi compiler today, which is great news, and means that for version 8.12 of Quick PDF Library our goal will be to provide native support for 64-bit applications.

However, if you purchase version 8.11 now then you will receive a free upgrade to version 8.12 when it is released as per our upgrade policy.

Enjoy!

Thanks to all the customers who participated in the beta release process. We hope you enjoy this new release.

By Rowan | Comments (1) | Posted in News,Quick PDF Library,Releases

Quick PDF Library 7.26 Released

July 12, 2011

The final version of Quick PDF Library 7.26 has been released and is ready for download from our updates page. This version includes numerous bug fixes, enhancements and new functions. Click on the link below to go to the upgrade page.

Download 7.26 from our Product Updates page

Release Notes

Enhancements

  • Improved handling of unexpected CCITT data streams
  • Elimination of invalid character codes in text extraction
  • Improvements to accuracy of text extraction
  • GetFormFieldSubName changed to return UTF-8 text for all field types
  • Type library files included with ActiveX (special version for VB6)
  • Added options 5 and 6 (character width output) to GetPageText function
  • Better handling of malformed TrueType font data
  • Added support for CMYK JPEG2000 images
  • NormalizePage function now adjusts annotations
  • Handle missing endbfchar token from malformed CMaps
  • Malformed xref tables (shifted object numbers) now handled correctly

New functions

  • CreateNewObject
  • GetOptionalContentGroupPrintable
  • GetOptionalContentGroupVisible
  • GetBaseURL

Bug fixes

  • Parsing of strings containing invalid reverse solidus codes corrected
  • Reduced inconsistencies of internal image conversions
  • Corrected image reversal for CCITT mask images
  • LIB Edition of QPL now built with FastMM4 memory manager
  • ServiceUnit.dfm correctly generated as part of source code release
  • Corrected the direction rectangle paths are drawn
  • Corrections to the way parent form fields are created
  • Internal parent/child relationship corrected with NewChildFormField
  • JPEG images with DeviceN color space now rendered correctly
  • NormalizePage function correctly handles rotated annotations

Feedback! Any feedback large or small is appreciated. We’ll shortly be planning the next round of exciting new features for Quick PDF Library, so we’d really like to know what you want to see added to the SDK. Don’t be shy, email us at support@quickpdflibrary.com and have your say.

Device context handles and signed/unsigned integers

June 21, 2011

For Quick PDF Library version 7.25 we changed the integer type of the device context handles returned by the GetCanvasDC function and accepted as parameters to the RenderPageToDC and DARenderPageToDC functions.

The reason for this is that the Delphi VCL declares the HDC type as an unsigned 32-bit integer.

The Windows graphics system does return values in the entire unsigned 32-bit range.

However, since making the change in 7.25 we have done further research and found some inconsistencies in various programming environments.

In particular, the Windows SDK defines a device context handle HDC as a PVOID which is a signed 32-bit integer.

The .NET Framework uses System.IntPtr which is also a signed 32-bit integer.

For 7.26 we will be making further changes to how device context handles are processed by Quick PDF Library to properly match different programming languages.

  • Delphi DCUs – Unsigned – Cardinal
  • Delphi DLL – Unsigned – HDC
  • C# ActiveX – Signed – System.IntPtr
  • C# DLL – Signed – System.IntPtr
  • C++ DLL – Signed – HDC
  • C++ ActiveX – Signed – HDC
  • VB.NET ActiveX – Signed – System.IntPtr
  • VB.NET DLL – Signed – System.IntPtr
  • PowerBuilder DLL – Signed -long
  • PowerBASIC DLL – Unsigned – DWORD
  • ActiveX Type Library – Signed – long

The information in this article supersedes the information that we posted on this topic a couple of weeks ago (specifically two two blog posts: Unsigned Integers and Device Context Functions and Unsigned Integers And Visual Basic).

Quick PDF Library 7.26 Beta 1 Released

Quick PDF Library 7.26 beta 1 has been released and is ready for download and testing. This new beta includes  numerous enhancements, new functions and bug fixes. The 7.26 beta 1 installer can be downloaded from the button below.

Release Notes

Enhancements

  • Improved handling of unexpected CCITT data streams
  • Elimination of invalid character codes in text extraction
  • Improvements to accuracy of text extraction
  • GetFormFieldSubName changed to return UTF-8 text for all field types
  • Type library files included with ActiveX (special version for VB6)
  • Added options 5 and 6 (character width output) to GetPageText function
  • Better handling of malformed TrueType font data
  • Added support for CMYK JPEG2000 images
  • NormalizePage function now adjusts annotations

New functions

  • CreateNewObject
  • GetOptionalContentGroupPrintable
  • GetOptionalContentGroupVisible

Bug fixes

  • Parsing of strings containing invalid reverse solidus codes corrected
  • Reduced inconsistencies of internal image conversions
  • Corrected image reversal for CCITT mask images
  • LIB Edition of QPL now built with FastMM4 memory manager
  • ServiceUnit.dfm correctly generated as part of source code release
  • Corrected the direction rectangle paths are drawn
  • Corrections to the way parent form fields are created
  • Internal parent/child relationship corrected with NewChildFormField

Feedback! Any feedback large or small is appreciated. We’ll shortly be planning the next round of exciting new features for Quick PDF Library, so we’d really like to know what you want to see added to the SDK. Don’t be shy, email us at support@quickpdflibrary.com and have your say.

By Rowan | Comments (2) | Posted in News,Quick PDF Library,Releases

Unsigned Integers and Device Context Functions

June 9, 2011

Update: the information in this post has been superseded by the information from this post: Device context handles and signed/unsigned integer.

In version 7.25 of Quick PDF Library we made a change to the API which made the use of unsigned integers necessary.

Unfortunately this change will break backwards compatibility for code that makes use of the RenderPageToDC, DARenderPageToDC, and GetCanvasDC functions — the only functions which use unsigned integers.

This means that for the RenderPageToDC and DARenderPageToDC functions the DC parameter now requires an unsigned integer to be passed to it and that the GetCanvasDC function now returns an unsigned integer. You will need to update your code to reflect this change prior to being able to successfully compile using version 7.25.

If you do not use any of these functions then you do not need to make any changes.

Most modern programming languages support unsigned integers, but there are a few older languages which do not. So for those languages we will attempt to come up with suitable workarounds — for example, as mentioned on this blog post a couple of days ago, we have created a TLB file to be used with the ActiveX edition of our library and VB6 which resolves the issue of VB6 not supporting unsigned integers. Leave a comment if your programming language does not support unsigned integers.

We do apologize in advance for any inconvenience that this break in backwards compatibility causes. We do our utmost to avoid situations like this but sometimes breaking backwards compatibility is necessary for the future health of the library.

Unsigned Integers And Visual Basic

June 7, 2011

Update: the information in this post has been superseded by the information from this post: Device context handles and signed/unsigned integer. It is no longer required to use unsigned integers with the ActiveX edition, this is handled internally by the library.

In version 7.25 of Quick PDF Library we made a change to the API which made the use of unsigned integers necessary. Unfortunately not all versions of programming languages support unsigned integers. In this particular case Visual Basic 6 and earlier versions do not support unsigned integers, while Visual Basic .NET and newer versions do.

Although VB6 was released over 10 years ago it still has a strong following and quite a few VB6 programmers use Quick PDF Library. This being the case we’ve come up with an easy workaround which will enable VB6 programmers to continue using all of the functions in Quick PDF Library.

We’re now providing a TLB file along with the ActiveX edition that handles the unsigned integers. The TLB file is only used at compile time so you won’t need to distribute it with your executable, but you will need to distribute the ActiveX as per usual.

The TLB file for Quick PDF Library 7.25 can be downloaded from here and will be included in all future installers.

Instructions for using the TLB file:

  1. Register the ActiveX on your machine as per usual
  2. Open your VB6 project
  3. Go to Project > References > Browse…
  4. Add the ‘QuickPDFAX0725VB.tlb’ file
  5. Compile

As you are adding the TLB file as the reference it is not necessary to add the ActiveX file as a project reference because the TLB file interfaces with the ActiveX through the registry.

Please note: if you do not use the GetCanvasDC, DARenderPageToDC or RenderPageToDC functions then you won’t run into any issues if you choose not to use the TLB file. The unsigned integers are currently only used with these functions.

« Older PostsNewer Posts »