# Version History

#### 4.5.2:

- Removed Carbon linking that was there for no good reason.
- Fixed linker problem on old macOS Mojave (and possibly some other older systems).

#### 4.5:

- Updated the library under the hood a lot, which gives many small improvements and more compatibility to macOS fonts.
- Added AttachFile method to the PDFDocument class.

#### 4.1:

- Updated the library library under the hood to get in some fixes.
- Added StBoundaryBox method to the Page class.
- Added PageBoundaryEnum to the Page class.
- Added UseExceptions property to the PDFDocument class. (Is now default false to give users time to update their projects, later it will default to true and property will be removed).
- Added PDFException class, which gives meaningful human readable errors.

#### 4.0:

- Updated libharu since library is now alive again.
- Added Linux ARM 64 build. (Works for Xojo 2022r4 or later).
- SetDashPattern method on the Page class now takes Singles instead of Int16.

#### 3.0:

- Added Windows Arm 64 build.

#### 2.7:

- Added HorizontalScaling property to the Page class.
- Added CharSpace property to the Page class.
- Added second variation of LoadTrueTypeFont method.
- Added SetPermission method to the PDFDocument class.
- Added SetSlideShow method to the Page class.
- Added TransitionStyleEnum to the Page class.
- Fixed bug in SetPassword method on the PDFDocument class.
- Fixed tiny memory leak.

#### 2.6:

- Added Arm build target for iOS simulator.
- Retargeted iOS build to set same minimum version as Xojo sets (iOS 11 instead of iOS 13).

#### 2.5.2:

- Fixed problem with missing Apple Silicon segments.

#### 2.5:

- Added Apple Silicon support.
- Added iOS Support.

#### 2.0:

- Fixed the GetCurrentTextPosition function where it was not respecting the TransformCoordinates property.
- Added SetEncryptionMode method to the PDFDocument class.
- Added SetPassword method to the PDFDocument class.
- Added EncryptModeEnum to the PDFDocument class.
- Added SetTextMatrix method to the Page class. (Preliminary support only since LibHaru does not fully document this one).
- Added SetTextRotation method to the Page class. (Preliminary support only since based on SetTextMatrix)

#### 1.9:

- Added TextRectMeasure function to the Page class.
- Fixed issue with both the MeasureText functions where they were returning number of bytes instead of number of characters which can be very different thing depending on encoding and content.
- Fixed issue with the length parameter on TextRect sand TextRectBaseline functions where the length ByRef parameter was returning number of bytes instead of number of characters which can be very different thing depending on encoding and content.
- Fixed crash when asking for stock font with automatic encoding.
- Added SetRGBFill method for setting RGB fill color with full precision.
- Added SetRGBSTroke method for setting RGB stroke color with full precision.

#### 1.8:

- Added GetCurrentTextPosition function to the Page class.
- Fixed three methods where Console safe flag was missing making them not work in console applications.

#### 1.7:

- Added TextRectBaseLine method to the Page class.
- Added LoadType1Font function to the PDFDocument class.
- Added BoundingBoxBottom property to the Font class.
- Added BoundingBoxTop property to the Font class.
- Added BoundingBoxLeft property to the Font class.
- Added BoundingBoxRight property to the Font class.

#### 1.6:

- Added ConcatMatrix method to the Page class.

#### 1.5:

- Added support for embedding 16bit per channel RawBitmap.
- Recompiled against TypeLib 8.7 since there were compatibility issues after the latest changes in TypeLib.
- Fixed some issues with embedding CMYK RawBitmap.

#### 1.4:

- Updated internal structures so that the Einhugur ICCColorProfile class from the ColorManagement Plugin can apply ICC profile to the PDF document class.
- Updated the Image functions to support CMYK color spaces.
- Added SetCMYKFill method to the Page class.
- Added SetCMYKStroke method to the Page class.

#### 1.3.2:

- Changed MoveTextPositionNextLine on the Page class so that if TextLeading is zero then MoveTextPositionNextLine now auto calculates new TextLeading and sets TextLeading back to zero upon finishing.
- Changed ShowTextNextLine on the Page class so that if TextLeading is zero then ShowTextNextLine now auto calculates new TextLeading and sets TextLeading back to zero upon finishing.
- Added SuggestedTextLeading function to the Page class.

#### 1.3:

- Added TransformCoordinates property to the Page class, allowing you to draw the PDF pages in coordinate system that your used to with y starting at top.
- Added two new example projects to show use of Top to bottom coordinates.
- Fixed bug with MoveTextPositionNextLine function on the Page class where it was internally calling wrong function on most platforms.
- Fixed issue deep in the library that is used under the hood that would cause TextRect function and on the Page class to leave the TextLeading property in different state after the function is called than it was before the call.

#### 1.2.4:

- Fixed the MeasureText function on the Page class so that it now actually returns what it is documented to return.
- Added another variation of the MeasureText function that can also measure the real with of the text.

#### 1.2.2:

- Fixed Linux linker error caused the Plugin to not load at all in the Xojo Linux IDE, and in some cases not on compiled Linux applications.

#### 1.2:

- Added SaveToString function on the PDFDocument class.
- Added SaveToMemoryBlock function on the PDFDocument class.
- Added TextRise property to the Page class.
- Added WordSpace property to the Page class.
- Added ShowTextNextLine to the Page class.
- Improved unicode support for saved PDF file names on Windows systems.
- Improved unicode support for Font file names on Windows systems.

#### 1.1:

- Added new constructor to the PDFDocument class that takes handle to the e-CryptIt Engine ZStream to enable compression in the PDF document.
- Added LoadJPEGImage function to the PDFDocument class. Adding ability to store far smaller images that are stored in native JPEG compressed format within the PDF instead of Raw format.
- Added CurveTo method to the Page class.
- Added CurveTo2 method to the Page class.
- Added CurveTo3 method to the Page class.
- Added Arc method to the Page class.
- Added new example project called Enabling compression.
- Added new example project called Embedding JPG images.
- Added new example project called PDF Curve Exampler.
- Added new example project called PDF Arc Exampler.

#### 1.0:

- This is the first version.

####