Image to PDF Dynamic Link Library Version History

Version Date Released Comments
1.0 July 2005
  • Initial Release
  • 1.1 November 2005
  • Added I2PDF_ImageStamp API that allows an image (eg a logo) to be stamped at the specified location on each page of the output PDF document.
  • Added I2PDF_DeleteImagesOnConvert API that will delete all images converted to PDF once the PDF document has been successfully produced.
  • Additional language interfaces provided (Visual Basic 6, Visual Basic .net, C# .net, C++ .net, J# .net).
  • 1.2 N/A
  • No version released.
  • 1.3 December 2005
  • Added I2PDF_StampURL API that specifies the URL that the Image Stamp will open with in the default web browser when it is clicked on.
  • Added I2PDF_SlideShow API that displays a PDF full screen with a chosen screen transition (17 available) between each page with user defined durations for both the transition and page display.
  • Added GIF, BMP, PCX and TGA image support.
  • Fixed bug that gave blank outline (bookmark) names when image filenames specified had no filepath (ie in current directory).
  • 1.31 February 2006
  • Amended I2PDF_MakePDF API so that it's parameter list is more flexible and better supports languages such as Visual Basic 6. All programming language specific files updated with these parameter changes.
  • Visual Basic 6 .bas declaration module updated with better declarations and Visual Basic 6 specific version of the DLL produced that uses the correct function calling (stdcall instead of cdecl) convention required.
  • 1.4 N/A
  • No version released.
  • 1.41 March 2006
  • Added I2PDF_Border, I2PDF_SetBorderColor_Real/Int/Web APIs that allow a colored border to be inserted between the image and the edge of the PDF page.
  • Added TIFF image support (including multi-page TIFFs).
  • Added animated GIF support.
  • Fixed bug that crashed the DLL if the PDF being created already existed and was being held open by a PDF viewer application.
  • Fixed bug that did not include outline titles (ie bookmarks) in the output PDF.
  • Changed so that by default a user only has read access to the PDF, if the user is allowed to edit, copy or print these must now be explicitly specified.
  • Re-wrote manual so that it is language neutral and easier to use.
  • Included simple test projects in C, Visual Basic 6 and VB.net
  • 1.42 April 2006
  • Fixed bug that did not correctly reset all settings when the reset option was specified without the open PDF one from I2PDF_MakePDF.
  • Extended image stamp support so that if the image stamp is larger than the image then it is scaled down to fit.
  • 1.43 April 2006
  • Added new versions of existing APIs which pass Double parameters so that there is a corresponding _Int version which passes Integer parameters for environments that cannot pass double values. The new APIs are I2PDF_ImageStamp_Int, I2PDF_SlideShow_Int and I2PDF_SetBorder_Int.
  • 1.5 May 2006
  • Added EMF and WMF meta format image support.
  • Added I2PDF_MetaImageMaxMP, I2PDF_MetaImageMaxMP_Int, I2PDF_MetaImageScale, I2PDF_MetaImageScale_Int, I2PDF_MetaStampImageMaxMP, I2PDF_MetaStampImageMaxMP_Int, I2PDF_MetaStampImageScale, I2PDF_MetaStampImageScale_Int APIs that constrain the size of converted EMF and WMF meta format images.
  • Increased border maximum size from 100 to 500 to allow for larger image stamps being embedded within the border.
  • 1.6 July 2006
  • Extended I2PDF_SetDPI API that overrides the specified (or default) DPI setting and uses the actual DPI recorded in the image file.
  • Added I2PDF_Rotate API that allows rotation of an image by 90, 180 or 270 degrees.
  • Added I2PDF_AutoRotate API that rotates (if required) an image by 90 or 270 degrees so that all images are either in portrait or landscape orientation.
  • Added I2PDF_Flip API that allows the image to be flipped horizontally and/or vertically.
  • Added I2PDF_Grayscale API that converts the image from color to grayscale.
  • Added I2PDF_Negative API that inverts the image colors.
  • Added I2PDF_JpegCompress API that forces JPEGs to be re-compressed at a specified quality level.
  • Added I2PDF_MetaMargins API that preserves the margins (no matter how large they might be) around WMF and EMF meta images.
  • Fixed bug in TIFF library code when loading in a minority of TIFF files that caused the library to crash.
  • Fixed minor issue with OPTION_RESET as used by the I2PDF_MakePDF API - it was not resetting all options.
  • Additional language interface provided for Clarion.
  • 1.61/1.62 July 2006
  • Fixed bug for standard WMF/EMF files which would get the image dimensions wrong on occasion - NB Aldus placeable WMF files were not affected.
  • Added in missing exported DLL function for the API I2PDF_SetBorder in "Image2PDF StdCall.dll"
  • Fixed bug when using I2PDF_DeleteImagesOnConvert API with a WMF file that was not deleting the source WMF file. Also, the bookmark name was incorrect when a WMF file was used.
  • Additional language interface provided for LabVIEW.
  • Additional language interface provided for Borland C++ Builder.
  • 1.7 September 2006
  • Added I2PDF_MetaVerticalRenderScale and I2PDF_MetaVerticalRenderScale_Int APIs that allows vertical scaling during the meta file render process.
  • Added I2PDF_MetaToNativePDF API that converts a meta image file into a native PDF representation (does not render into an image but converts meta image commands directly into equivalent native PDF graphic and text functions).
  • Added I2PDF_UseEMFDeviceSize API that determines the size of an EMF meta file by using the embedded reference device bounds.
  • Added I2PDF_Log API that records information and error messages to the required log file.
  • Added I2PDF_WildcardFilenameUse API that allows PDFs to be produced per image file or per directory and for recursion down sub-directories.
  • Added support for wildcard image filenames in I2PDF_AddImage.
  • Amended Image2PDF.vb (interface for Visual Studio 2005 VB.net) to correctly specify public constants.
  • Added I2PDF_TreatImageNumericExtensionAs that allows image files with numeric extensions to be treated as a nominated image filetype.
  • In order to restrict user actions (ie I2PDF_SetPermissionEdit, I2PDF_SetPermissionEditExtra, I2PDF_SetPermissionCopy, I2PDF_SetPermissionPrint) the owner password (I2PDF_SetOwnerPassword) must be specified, otherwise a user can perform any action.
  • All images types (excluding JPEG) now require less memory when creating a PDF document.
  • PDF creation has been speeded up (actual speed increase depends on format and size of images used).
  • 1.71 September 2006
  • Improved I2PDF_MetaToNativePDF font handling so that System font is correctly translated into MS Sans Serif for Windows versions prior to 2000 and to Tahoma for 2000 and later instead of being converted to Helvetica. Non True Type fonts now get converted to either Courier (if fixed font) or Helvetica (if proportional font) rather than just Helvetica. True Type fonts which do not have a CMAP table are now handled rather than erroring and are treated as if they were a non True Type font.
  • 1.72 October 2006
  • Added I2PDF_MetaTextFitBoundingRect API which reduces the font size of text until it fits within the defined bounding rectangle.
  • Improved I2PDF_MetaToNativePDF font handling when matching font name stems (eg Arial no longer matches with Arial Narrow but with Arial).
  • Improved I2PDF_MetaToNativePDF pen and brush handling, especially where text is drawn over filled rectangles.
  • Added I2PDF_Reset that resets all settings including the list of images added.
  • Added support for TIF images with different horizontal and vertical DPI settings (eg normal mode faxes) when actual image DPI is used.
  • Fixed actual image DPI usage when an image does not have any DPI specified - it reverts to the previously specified DPI setting (or the default setting of 72 DPI).
  • Added I2PDF_MetaDefaultFont API that allows the specification of a default font when a font cannot be matched from the meta image file.
  • Improved I2PDF_MetaToNativePDF image handling.
  • 1.8 December 2006
  • Added I2PDF_AddImageBookmark which allows custom bookmark names to be used in the outline.
  • Created a simple example C# project.
  • Amended Image2PDF.cs (interface for C#).
  • 1.81 December 2006
  • Added I2PDF_SilentRunning which prevents information from being printed to the console window.
  • Fixed WMF/EMF World Transform state when saving/restoring device contexts.
  • Fixed WMF/EMF text underline when bold text used so that the underline is also bold.
  • Fixed WMF/EMF problem when a unicode euro symbol was used and not converted correctly.
  • Fixed bookmarks so that when click on a bookmark it does not reset the PDF document zoom factor to 100% but leaves it as it is.
  • 1.82 January 2007
  • Added I2PDF_SetOutlineTitle API which allows the outline root title to be specified.
  • Added I2PDF_TreatImageTmpExtensionAs API that allows image files with TMP extensions to be treated as a nominated image filetype.
  • Fixed bug with WMF handling which temporariliy converted them into EMF images for use that was leaving the temporary EMF image file behind.
  • 1.83 February 2007
  • Added I2PDF_TreatImageExtensionAs API that allows non-standard image extension names to be treated as known image extensions.
  • Added I2PDF_PreventPDFOverwrite API that will stop an existing PDF being overwritten.
  • Added I2PDF_SaveFailureBackupPDF API that will save the PDF to a backup filename if the required file cannot be written.
  • Added I2PDF_MetaBitmapForcedFontQuality API that forces the bitmap rendering of a meta image file to use a specified font quality setting.
  • Added I2PDF_CenterMetaImageOnPage API that ensures that the native PDF rendering of a meta image centers the actual rendered content on the page.
  • Added Image2PDF.prg (interface for xHarbour / Five Win Harbour).
  • Fixed bug with WMF/EMF invalid embedded meta file images - previously they were plotted even if there was no image - now they are not.
  • Fixed bug with WMF/EMF text plotting in the wrong Y position when the text reference point was set to baseline or bottom.
  • Fixed bug with WMF/EMF line drawing thickness which was not taking into account the world transform factors.
  • Fixed bug with WMF/EMF world transforms which started off without initially setting either the identity matrix or an initial matrix value.
  • Fixed bug with WMF/EMF vertical text rendering.
  • When logging is active the log now includes the version of Windows in use.
  • 1.9 April 2007
  • Added I2PDF_IncludeTIFFOCRText API that includes any OCR'd text stored within the TIFF file (eg produced by Microsoft Document Imaging) as invisible "searchable" text within the PDF.
  • Added I2PDF_SaveTIFFOCRText API that outputs any OCR'd text stored within the TIFF file (eg produced by Microsoft Document Imaging) into a text file with the same name and in the same location as the produced PDF.
  • Added support for Bates (Page/Document) Numbering with the new commands: I2PDF_BatesFormat, I2PDF_BatesLocation, I2PDF_BatesLocation_Int, I2PDF_BatesFont_Real/Int/Web, I2PDF_BatesFile, I2PDF_BatesNumber, I2PDF_BatesIncrement, I2PDF_BatesBackground_Real/Int/Web.
  • Added support for dealing gracefully (ie not abandoning current PDF) with images that cannot be converted with the new APIs: I2PDF_LoadImageFailureCopyTo, I2PDF_LoadImageFailureSkip, I2PDF_LoadImageFailurePageFont_Real/Int/Web, and I2PDF_LoadImageFailurePage_Real/Int/Web.
  • When the PDF is saved, the log now records how many pages were in the saved PDF.
  • Changed image filename wildcard matching to allow files which have the "compressed" and/or "temporary" file attributes set to be included for conversion.
  • Added log option to I2PDF_Log that can be used as an aid to debugging problems when using image filenames with wildcard characters in.
  • Added I2PDF_MetaToNativeFontSubstitution API that forces named font and character substitution to be applied.
  • Fixed bug with WMF/EMF drawing of ellipse outline which was additionally drawing a vertical line from the center of the ellipse to the top of the ellipse.
  • 1.91 April 2007
  • Changed WMF/EMF sizing of text to make it more compatible with how Windows would have displayed the text.
  • Changed WMF/EMF handling of GDI objects (pen, font, brush) to double the number of supported object definitions per page (to 200) to support applications that may not de-duplicate identical objects when creating some types of pages (eg reports with multi-column text).
  • JPEG images now require less memory when creating a PDF document.
  • 1.92 May 2007
  • WMF/EMF now supports text rotated at any angle (not just horizontal or vertical).
  • WMF/EMF now supports font usage whose font sizing is non-standard (where the width of the font is squashed or expanded in relation to its height).
  • Fixed recently introduced bug which caused WMF/EMF fonts to always be matched with Helvetica.
  • Enhanced extraction of OCR'd text as produced by Microsoft Document Imaging to also support Office XP (in addition to Office 2003).
  • Added I2PDF_MetaDefaultFontXScaling API that allows for arbitrary scaling of the default meta image font when no font match is possible in order to better match the actual physical dimensions of the substituted font.
  • Added "Simple Image2PDF Borland C example" project.
  • 2.00 July 2007
  • Added I2PDF_MetaDefaultFontXScaling API for I2PDF_MetaToNativePDF that applies font scaling to the default native PDF rendering of text for fonts that cannot be matched to better approximate the size of the un-matched font.
  • I2PDF_MetaToNativePDF now supports a number of text Unicode code pages - CP874 (Thai), CP1250 (Latin2), CP1251 (Cyrillic), CP1252 (Latin1), CP1253 (Greek), CP1254 (Turkish), CP1255 (Hebrew), CP1256 (Arabic), CP127 (Baltic).
  • Added I2PDF_UseArabicContextualForms command for I2PDF_MetaToNativePDF that translates basic Arabic text from codepage CP1256 into contextual Arabic (initial, medial, final and isolated forms).
  • Added I2PDF_EmbedFonts command for I2PDF_MetaToNativePDF that will embed font data so that a PDF can be viewed correctly on a system which does not have the required font available.
  • Default producer value now set to combat problem if not set and using produced PDF with other applications.
  • 2.01 August 2007
  • Added alternative API names for all APIs whose name length was over 30 characters - this is to support the JADE development environment. New APIs are: I2PDF_SetViewPrefCenterWindow, I2PDF_SetViewPrefHideToolbar, I2PDF_SetViewPrefHideMenubar, I2PDF_SetViewPrefHideWindowUI, I2PDF_SetViewPrefFitWindow, I2PDF_SetPageLayout1Col, I2PDF_SetPageLayout2ColLeft, I2PDF_SetPageLayout2ColRight, I2PDF_MetaVertRenderScale_Int, I2PDF_TreatImageNumericExtAs, I2PDF_TreatImageTmpExtAs, I2PDF_TreatImageExtAs, I2PDF_MetaBitmapForcedFontQ, I2PDF_MetaToNativeFontSubs, I2PDF_LoadImageFailCopyTo, I2PDF_LoadImageFailSkip, I2PDF_LoadImageFailPgFnt_Real, I2PDF_LoadImageFailPgFnt_Int, I2PDF_LoadImageFailPgFnt_Web, I2PDF_LoadImageFailPg_Real, I2PDF_LoadImageFailPg_Int, I2PDF_LoadImageFailPg_Web, I2PDF_UseArabicContextForms
  • 2.1 September 2007
  • Fixed problem when using any of the image transform commands with JPEG images (these had stopped working).
  • Added I2PDF_EncryptionLevel API that allows the selection of either 40 bit (default if not specified) or 128 bit encryption and to be able to force the encryption of the PDF in all circumstances.
  • 2.2 October 2007
  • Fixed outline (bookmark) style of capitalise which was not forcing subsequent letters of a word to lower case after the initial capital.
  • Fixed full screen option so that it always works (before having an outline active stopped this).
  • Fixed Bates background outline mode which was filling the Bates area instead of stroking the outline of it.
  • Fixed problem when using I2PDF_SetCreationDate with no GMT difference because of daylight savings calculation which was returning an invalid date error when trying to create the PDF.
  • 2.21 December 2007
  • Fixed I2PDF_MetaToNativePDF problem with fonts that are specified with a non-default width for their point size.
  • 2.22 January 2008
  • Added I2PDF_MinImageSize API to allow images to be skipped during the conversion process that are smaller than the required size.
  • Enhanced I2PDF_MetaToNativePDF to support Arc record.
  • Enhanced I2PDF_MetaToNativePDF brushes to allow for hatched brushes so that these now show the correct filled in color (although the hatching is still not drawn).
  • Fixed I2PDF_MetaToNativePDF problem when output text that has been specified as zero length (ie an empty text string with no text in it) which if it had been specified before the font selection caused the conversion to abort.
  • Fixed I2PDF_MetaToNativePDF problem when displaying a bitmap without any bitmap data, it will now only fill in the bitmap area with the current color if the background mode is not transparent.
  • Enhanced I2PDF_AddImage and I2PDF_AddImageBookmark to return an error if the image being added does not exist.
  • Added "Simple Image2PDF MFC C++ Example" project.
  • 2.3 April 2008
  • Enhanced I2PDF_MetaToNativePDF to support undocumented ModifyWorldTransform mode 4 record.
  • Enhanced I2PDF_MetaToNativePDF to support SmallTextOut record.
  • Enhanced I2PDF_MetaToNativePDF to support Windows font aliases.
  • Enhanced I2PDF_MetaToNativePDF to round the calculate DPI to the nearest integer.
  • Enhanced I2PDF_MetaToNativePDF so that fonts specified with a system default charset now use the current system codepage rather than defaulting to codepage 1252.
  • Added I2PDF_UseEMFFrameSize as an alternative method of determining the PDF page size.
  • Fixed I2PDF_MetaToNativePDF Unicode text code pages to use the Microsoft code page character encoding rather than the appropriate ISO8859 part for Latin2, Cyrillic, Greek, Turkish, Hebrew, Arabic, Baltic.
  • 2.4 October 2008
  • Added I2PDF_PDFVersion that forces the PDF version to be set to the desired value from v1.2 (Acrobat 3.x) to v1.6 (Acrobat 7.x)
  • Enhanced existing I2PDF_MetaToNativePDF SmallTextOut record support.
  • Integrated latest version (1.2.26) of the PNG Reference Library.
  • Integrated latest version (1.2.3) of the zlib Compression Library.
  • Updated TIFF support to include the ability to decode "Old JPEG" embedded data.
  • Manual now provided in HTML format.
  • NB. It is the policy of Utility Warrior that all future upgrades are free of charge.