diff --git a/src/core/fonts.js b/src/core/fonts.js index 45a984e1d..cfb1f1c44 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -2133,6 +2133,9 @@ function reverseIfRtl(chars) { } function adjustWidths(properties) { + if (!properties.fontMatrix) { + return; + } if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) { return; } @@ -2647,6 +2650,8 @@ var Font = (function FontClosure() { // view of the sanitizer data = this.checkAndRepair(name, file, properties); if (this.isOpenType) { + adjustWidths(properties); + type = 'OpenType'; } break; @@ -4079,6 +4084,8 @@ var Font = (function FontClosure() { cffFile = new Stream(tables['CFF '].data); cff = new CFFFont(cffFile, properties); + adjustWidths(properties); + return this.convert(name, cff, properties); } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 290cea977..00fa955b9 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -46,6 +46,7 @@ !issue6413.pdf !issue4630.pdf !issue4909.pdf +!issue5084.pdf !issue5202.pdf !issue5280.pdf !issue5677.pdf diff --git a/test/pdfs/issue5084.pdf b/test/pdfs/issue5084.pdf new file mode 100644 index 000000000..d35ee160d Binary files /dev/null and b/test/pdfs/issue5084.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index 986524abb..88eda0ae5 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -748,6 +748,13 @@ "rounds": 1, "type": "eq" }, + { "id": "issue5084", + "file": "pdfs/issue5084.pdf", + "md5": "a42a076ba90e20e3aae9af869eb4de45", + "link": false, + "rounds": 1, + "type": "eq" + }, { "id": "scan-bad", "file": "pdfs/scan-bad.pdf", "md5": "4cf988f01ab83f61aca57f406dfd6584",