Use adjustWidths
for TrueType fonts if we handle them as OpenType (issue 5027, issue 5084, issue 6556, bug 1204903)
In `Font_checkAndRepair` we can decide that a font isn't TrueType, and instead parse it as CFF. In that case it's quite possible that the `fontMatrix` will be changed, and without calling `adjustWidths` we're failing to update the glyph widths correctly. Fixes 5027. Fixes 5084. Fixes 6556. Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1204903.
This commit is contained in:
parent
084bb8682f
commit
ee0d522187
@ -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);
|
||||
}
|
||||
|
||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -46,6 +46,7 @@
|
||||
!issue6413.pdf
|
||||
!issue4630.pdf
|
||||
!issue4909.pdf
|
||||
!issue5084.pdf
|
||||
!issue5202.pdf
|
||||
!issue5280.pdf
|
||||
!issue5677.pdf
|
||||
|
BIN
test/pdfs/issue5084.pdf
Normal file
BIN
test/pdfs/issue5084.pdf
Normal file
Binary file not shown.
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user