From 7dbd0887282d0bdc804961865fc1a513cbad1048 Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Tue, 11 Mar 2014 14:16:27 -0500 Subject: [PATCH] Fixes corrupted by Aspose fonts. --- src/core/fonts.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/fonts.js b/src/core/fonts.js index a56797534..fb908e95b 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -3387,6 +3387,12 @@ var Font = (function FontClosure() { itemEncode(locaData, 0, writeOffset); for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { var endOffset = itemDecode(locaData, j); + if (endOffset > oldGlyfDataLength && + ((oldGlyfDataLength + 3) & ~3) === endOffset) { + // Aspose breaks fonts by aligning the glyphs to the qword, but not + // the glyf table size, which makes last glyph out of range. + endOffset = oldGlyfDataLength; + } if (endOffset > oldGlyfDataLength) { // glyph end offset points outside glyf data, rejecting the glyph itemEncode(locaData, j, writeOffset);