Merge pull request #11746 from Snuffleupagus/issue-11740
Create the glyph mapping correctly for composite Type1, i.e. CIDFontType0, fonts (issue 11740)
This commit is contained in:
commit
70c54ab9d9
@ -3642,6 +3642,22 @@ var Type1Font = (function Type1FontClosure() {
|
|||||||
|
|
||||||
getGlyphMapping: function Type1Font_getGlyphMapping(properties) {
|
getGlyphMapping: function Type1Font_getGlyphMapping(properties) {
|
||||||
var charstrings = this.charstrings;
|
var charstrings = this.charstrings;
|
||||||
|
|
||||||
|
if (properties.composite) {
|
||||||
|
const charCodeToGlyphId = Object.create(null);
|
||||||
|
// Map CIDs directly to GIDs.
|
||||||
|
for (
|
||||||
|
let glyphId = 0, charstringsLen = charstrings.length;
|
||||||
|
glyphId < charstringsLen;
|
||||||
|
glyphId++
|
||||||
|
) {
|
||||||
|
const charCode = properties.cMap.charCodeOf(glyphId);
|
||||||
|
// Add 1 because glyph 0 is duplicated.
|
||||||
|
charCodeToGlyphId[charCode] = glyphId + 1;
|
||||||
|
}
|
||||||
|
return charCodeToGlyphId;
|
||||||
|
}
|
||||||
|
|
||||||
var glyphNames = [".notdef"],
|
var glyphNames = [".notdef"],
|
||||||
glyphId;
|
glyphId;
|
||||||
for (glyphId = 0; glyphId < charstrings.length; glyphId++) {
|
for (glyphId = 0; glyphId < charstrings.length; glyphId++) {
|
||||||
|
@ -437,7 +437,7 @@ var Type1Parser = (function Type1ParserClosure() {
|
|||||||
r = ((value + r) * c1 + c2) & ((1 << 16) - 1);
|
r = ((value + r) * c1 + c2) & ((1 << 16) - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Array.prototype.slice.call(decrypted, discardNumber, j);
|
return decrypted.slice(discardNumber, j);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isSpecial(c) {
|
function isSpecial(c) {
|
||||||
@ -457,10 +457,14 @@ var Type1Parser = (function Type1ParserClosure() {
|
|||||||
if (encrypted) {
|
if (encrypted) {
|
||||||
var data = stream.getBytes();
|
var data = stream.getBytes();
|
||||||
var isBinary = !(
|
var isBinary = !(
|
||||||
isHexDigit(data[0]) &&
|
(isHexDigit(data[0]) || isWhiteSpace(data[0])) &&
|
||||||
isHexDigit(data[1]) &&
|
isHexDigit(data[1]) &&
|
||||||
isHexDigit(data[2]) &&
|
isHexDigit(data[2]) &&
|
||||||
isHexDigit(data[3])
|
isHexDigit(data[3]) &&
|
||||||
|
isHexDigit(data[4]) &&
|
||||||
|
isHexDigit(data[5]) &&
|
||||||
|
isHexDigit(data[6]) &&
|
||||||
|
isHexDigit(data[7])
|
||||||
);
|
);
|
||||||
stream = new Stream(
|
stream = new Stream(
|
||||||
isBinary
|
isBinary
|
||||||
|
@ -224,6 +224,15 @@ if (
|
|||||||
Number.isInteger = require("core-js/es/number/is-integer.js");
|
Number.isInteger = require("core-js/es/number/is-integer.js");
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
// Provides support for TypedArray.prototype.slice in legacy browsers.
|
||||||
|
// Support: IE
|
||||||
|
(function checkTypedArraySlice() {
|
||||||
|
if (Uint8Array.prototype.slice) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
require("core-js/es/typed-array/slice");
|
||||||
|
})();
|
||||||
|
|
||||||
// Support: IE, Safari<11, Chrome<63
|
// Support: IE, Safari<11, Chrome<63
|
||||||
(function checkPromise() {
|
(function checkPromise() {
|
||||||
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("IMAGE_DECODERS")) {
|
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("IMAGE_DECODERS")) {
|
||||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -206,6 +206,7 @@
|
|||||||
!bug1011159.pdf
|
!bug1011159.pdf
|
||||||
!issue5734.pdf
|
!issue5734.pdf
|
||||||
!issue4875.pdf
|
!issue4875.pdf
|
||||||
|
!issue11740_reduced.pdf
|
||||||
!issue4881.pdf
|
!issue4881.pdf
|
||||||
!issue5994.pdf
|
!issue5994.pdf
|
||||||
!issue6151.pdf
|
!issue6151.pdf
|
||||||
|
BIN
test/pdfs/issue11740_reduced.pdf
Normal file
BIN
test/pdfs/issue11740_reduced.pdf
Normal file
Binary file not shown.
@ -904,6 +904,12 @@
|
|||||||
"link": false,
|
"link": false,
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
},
|
},
|
||||||
|
{ "id": "issue11740",
|
||||||
|
"file": "pdfs/issue11740_reduced.pdf",
|
||||||
|
"md5": "f3f2957f171af52229c6e749e8a5572b",
|
||||||
|
"rounds": 1,
|
||||||
|
"type": "eq"
|
||||||
|
},
|
||||||
{ "id": "issue10491",
|
{ "id": "issue10491",
|
||||||
"file": "pdfs/issue10491.pdf",
|
"file": "pdfs/issue10491.pdf",
|
||||||
"md5": "0759ec46739b13bb0b66170a18d33d4f",
|
"md5": "0759ec46739b13bb0b66170a18d33d4f",
|
||||||
|
Loading…
Reference in New Issue
Block a user