Guess CIDFontType0 subtype based on font file contents (issue 5751)
This commit is contained in:
parent
72cfa36b06
commit
e894a0a4c6
@ -2575,6 +2575,10 @@ var Font = (function FontClosure() {
|
|||||||
if (subtype === 'OpenType') {
|
if (subtype === 'OpenType') {
|
||||||
type = 'OpenType';
|
type = 'OpenType';
|
||||||
}
|
}
|
||||||
|
// Some CIDFontType0C fonts by mistake claim CIDFontType0.
|
||||||
|
if (type === 'CIDFontType0') {
|
||||||
|
subtype = isType1File(file) ? 'CIDFontType0' : 'CIDFontType0C';
|
||||||
|
}
|
||||||
|
|
||||||
var data;
|
var data;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@ -2655,6 +2659,20 @@ var Font = (function FontClosure() {
|
|||||||
return readUint32(header, 0) === 0x00010000;
|
return readUint32(header, 0) === 0x00010000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isType1File(file) {
|
||||||
|
var header = file.peekBytes(2);
|
||||||
|
// All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).
|
||||||
|
if (header[0] === 0x25 && header[1] === 0x21) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// ... obviously some fonts violate that part of the specification,
|
||||||
|
// please refer to the comment in |Type1Font| below.
|
||||||
|
if (header[0] === 0x80 && header[1] === 0x01) { // pfb file header.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rebuilds the char code to glyph ID map by trying to replace the char codes
|
* Rebuilds the char code to glyph ID map by trying to replace the char codes
|
||||||
* with their unicode value. It also moves char codes that are in known
|
* with their unicode value. It also moves char codes that are in known
|
||||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -62,6 +62,7 @@
|
|||||||
!bug868745.pdf
|
!bug868745.pdf
|
||||||
!mmtype1.pdf
|
!mmtype1.pdf
|
||||||
!issue5704.pdf
|
!issue5704.pdf
|
||||||
|
!issue5751.pdf
|
||||||
!bug893730.pdf
|
!bug893730.pdf
|
||||||
!bug864847.pdf
|
!bug864847.pdf
|
||||||
!issue1002.pdf
|
!issue1002.pdf
|
||||||
|
BIN
test/pdfs/issue5751.pdf
Normal file
BIN
test/pdfs/issue5751.pdf
Normal file
Binary file not shown.
@ -1105,6 +1105,13 @@
|
|||||||
"link": true,
|
"link": true,
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
},
|
},
|
||||||
|
{ "id": "issue5751",
|
||||||
|
"file": "pdfs/issue5751.pdf",
|
||||||
|
"md5": "9334a52dc85747f1e3422767e0cd3ee9",
|
||||||
|
"rounds": 1,
|
||||||
|
"link": false,
|
||||||
|
"type": "eq"
|
||||||
|
},
|
||||||
{ "id": "bug867484",
|
{ "id": "bug867484",
|
||||||
"file": "pdfs/bug867484.pdf",
|
"file": "pdfs/bug867484.pdf",
|
||||||
"md5": "347af7b0ef7279b1a7f43b03bfda4548",
|
"md5": "347af7b0ef7279b1a7f43b03bfda4548",
|
||||||
|
Loading…
Reference in New Issue
Block a user