1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-22 16:18:08 +02:00

[CIDFontType2] Map characters missing in toUnicode to the private use area (bug 1028735 and issue 4881)

This commit is contained in:
Jonas Jenwald 2014-06-28 12:38:25 +02:00
parent c5f4051a75
commit a7c786775d
4 changed files with 22 additions and 5 deletions

View file

@ -2473,6 +2473,7 @@ var Font = (function FontClosure() {
var toUnicode = properties.toUnicode;
var isSymbolic = !!(properties.flags & FontFlags.Symbolic);
var isIdentityUnicode = properties.isIdentityUnicode;
var isCidFontType2 = (properties.type === 'CIDFontType2');
var newMap = Object.create(null);
var toFontChar = [];
var usedFontCharCodes = [];
@ -2483,11 +2484,17 @@ var Font = (function FontClosure() {
var fontCharCode = originalCharCode;
// First try to map the value to a unicode position if a non identity map
// was created.
if (!isIdentityUnicode && toUnicode[originalCharCode] !== undefined) {
var unicode = toUnicode[fontCharCode];
// TODO: Try to map ligatures to the correct spot.
if (unicode.length === 1) {
fontCharCode = unicode.charCodeAt(0);
if (!isIdentityUnicode) {
if (toUnicode[originalCharCode] !== undefined) {
var unicode = toUnicode[fontCharCode];
// TODO: Try to map ligatures to the correct spot.
if (unicode.length === 1) {
fontCharCode = unicode.charCodeAt(0);
}
} else if (isCidFontType2) {
// For CIDFontType2, move characters not present in toUnicode
// to the private use area (fixes bug 1028735 and issue 4881).
fontCharCode = nextAvailableFontCharCode;
}
}
// Try to move control characters, special characters and already mapped