@devongovett devongovett released this Aug 26, 2016 · 88 commits to master since this release

Switches the font engine from an internal one to fontkit, an advanced text shaping engine I've been working on for a while. For PDFKit, this means the following features and improvements:

  • Support for OpenType (CFF), WOFF, and WOFF2 fonts. Previously PDFKit only supported TTF, DFont, and TTC fonts.
  • Support for advanced text layout features, including ligatures, kerning, and other advanced glyph substitutions and positioning adjustments.
  • Support for OpenType GSUB and GPOS tables, and script specific shapers (currently Arabic and Hangul shapers are included).
  • Support for Apple Advanced Typography (morx) substitutions.
  • Support for kerning built-in PDF fonts using data from AFM files.
  • Support for vertical positioning adjustments, e.g. for accents on non-composite glyphs.
  • Fonts are now embedded as CID fonts, meaning support for large character sets like CJK scripts is much improved.

PDFKit's API remains almost exactly the same, the changes are entirely under the covers. The only addition is a new features option to the doc.text method, which can be used to apply custom OpenType features to the text. If given, it should be an array of OpenType feature tags. Most of the time, this is unnecessary as the script shaper will automatically apply required features.


@devongovett devongovett released this Mar 26, 2015 · 146 commits to master since this release

This is a fairly minor release. It includes the following fixes and improvements:

A precompiled version is attached to the release.


@devongovett devongovett released this Sep 15, 2014 · 162 commits to master since this release

This is a big release. I'd like to thank the contributors listed below for making this possible!

  • Adds support for an optional page buffering feature where you can go back to previous pages to add things like page numbers. Thanks to @ef4. See #302 for the PR, and here for some docs.
  • Fixes indent with the continued option for text. Thanks @ef4. See #300.
  • Fixes center-aligned text with the characterSpacing option. Thanks again @ef4. See #301.
  • Works around missing ascender in ZapfDingbats font. Thanks @ef4. See #303.
  • Fixes an infinite loop when the first word of a text call is longer than the space available in the line. @ef4 again (this guy is awesome!). See #309.
  • Avoids unnecessarily breaking inside words when using continued. @ef4 deserves a medal. See #308.
  • Fixes TTF parsing when PDFKit is minified. Thanks to @yelouafi for this one. See #306.


@devongovett devongovett released this Aug 29, 2014 · 184 commits to master since this release

  • Fixes unicode in annotations (#287)


@devongovett devongovett released this Aug 27, 2014 · 186 commits to master since this release

  • Fixes cmap reading (#276) and some uint32 reading. Thanks @mishoo!


@devongovett devongovett released this Jul 29, 2014 · 193 commits to master since this release

  • Support for new image valign option. It works like the align option but vertically inside the fit area.
  • Support for using ArrayBuffers and Uint8Arrays for loading fonts in the browser.