Browse Source

PDF.js version 1.0.633

master v1.0.633
Yury Delendik 11 years ago
parent
commit
773ea0b31c
  1. 2
      bower.json
  2. 126
      build/pdf.combined.js
  3. 4
      build/pdf.js
  4. 126
      build/pdf.worker.js
  5. 2
      package.json

2
bower.json

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
{
"name": "pdfjs-dist",
"version": "1.0.629",
"version": "1.0.633",
"keywords": [
"Mozilla",
"pdf",

126
build/pdf.combined.js

@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') { @@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
(typeof window !== 'undefined' ? window : this).PDFJS = {};
}
PDFJS.version = '1.0.629';
PDFJS.build = 'a353f88';
PDFJS.version = '1.0.633';
PDFJS.build = '4ce1b1e';
(function pdfjsWrapper() {
// Use strict in our context only - users might not want it
@ -16183,12 +16183,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { @@ -16183,12 +16183,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
},
readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {
var cmapObj = toUnicode;
var cmap, cmapObj = toUnicode;
if (isName(cmapObj)) {
return CMapFactory.create(cmapObj,
cmap = CMapFactory.create(cmapObj,
{ url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null).getMap();
return new ToUnicodeMap(cmap);
} else if (isStream(cmapObj)) {
var cmap = CMapFactory.create(cmapObj,
cmap = CMapFactory.create(cmapObj,
{ url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null).getMap();
// Convert UTF-16BE
// NOTE: cmap can be a sparse array, so use forEach instead of for(;;)
@ -16207,7 +16208,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { @@ -16207,7 +16208,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
}
cmap[i] = String.fromCharCode.apply(String, str);
});
return cmap;
return new ToUnicodeMap(cmap);
}
return null;
},
@ -20554,6 +20555,68 @@ var Glyph = (function GlyphClosure() { @@ -20554,6 +20555,68 @@ var Glyph = (function GlyphClosure() {
return Glyph;
})();
var ToUnicodeMap = (function ToUnicodeMapClosure() {
function ToUnicodeMap(cmap) {
// The elements of this._map can be integers or strings, depending on how
// |cmap| was created.
this._map = cmap;
}
ToUnicodeMap.prototype = {
get length() {
return this._map.length;
},
forEach: function(callback) {
for (var charCode in this._map) {
callback(charCode, this._map[charCode].charCodeAt(0));
}
},
get: function(i) {
return this._map[i];
},
charCodeOf: function(v) {
return this._map.indexOf(v);
}
};
return ToUnicodeMap;
})();
var IdentityToUnicodeMap = (function IdentityToUnicodeMapClosure() {
function IdentityToUnicodeMap(firstChar, lastChar) {
this.firstChar = firstChar;
this.lastChar = lastChar;
}
IdentityToUnicodeMap.prototype = {
get length() {
error('should not access .length');
},
forEach: function(callback) {
for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {
callback(i, i);
}
},
get: function(i) {
if (this.firstChar <= i && i <= this.lastChar) {
return String.fromCharCode(i);
}
return undefined;
},
charCodeOf: function(v) {
error('should not call .charCodeOf');
}
};
return IdentityToUnicodeMap;
})();
/**
* 'Font' is the class the outside world should use, it encapsulate all the font
* decoding logics whatever type it is (assuming the font type is supported).
@ -20597,9 +20660,7 @@ var Font = (function FontClosure() { @@ -20597,9 +20660,7 @@ var Font = (function FontClosure() {
this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;
this.fontMatrix = properties.fontMatrix;
var unicode = this.buildToUnicode(properties);
this.toUnicode = properties.toUnicode = unicode.toUnicode;
this.isIdentityUnicode = properties.isIdentityUnicode = unicode.isIdentity;
this.toUnicode = properties.toUnicode = this.buildToUnicode(properties);
this.toFontChar = [];
@ -20652,7 +20713,7 @@ var Font = (function FontClosure() { @@ -20652,7 +20713,7 @@ var Font = (function FontClosure() {
map[+code] = GlyphMapForStandardFonts[code];
}
this.toFontChar = map;
this.toUnicode = map;
this.toUnicode = new ToUnicodeMap(map);
} else if (/Symbol/i.test(fontName)) {
var symbols = Encodings.SymbolSetEncoding;
for (charCode in symbols) {
@ -20671,15 +20732,14 @@ var Font = (function FontClosure() { @@ -20671,15 +20732,14 @@ var Font = (function FontClosure() {
}
} else {
var unicodeCharCode, notCidFont = (type.indexOf('CIDFontType') === -1);
for (charCode in this.toUnicode) {
unicodeCharCode = this.toUnicode[charCode].charCodeAt(0);
this.toUnicode.forEach(function(charCode, unicodeCharCode) {
if (notCidFont) {
glyphName = (properties.differences[charCode] ||
properties.defaultEncoding[charCode]);
unicodeCharCode = (GlyphsUnicode[glyphName] || unicodeCharCode);
}
this.toFontChar[charCode] = unicodeCharCode;
}
}.bind(this));
}
this.loadedName = fontName.split('-')[0];
this.loading = false;
@ -20892,7 +20952,8 @@ var Font = (function FontClosure() { @@ -20892,7 +20952,8 @@ var Font = (function FontClosure() {
function adjustMapping(charCodeToGlyphId, properties) {
var toUnicode = properties.toUnicode;
var isSymbolic = !!(properties.flags & FontFlags.Symbolic);
var isIdentityUnicode = properties.isIdentityUnicode;
var isIdentityUnicode =
properties.toUnicode instanceof IdentityToUnicodeMap;
var isCidFontType2 = (properties.type === 'CIDFontType2');
var newMap = Object.create(null);
var toFontChar = [];
@ -20905,8 +20966,8 @@ var Font = (function FontClosure() { @@ -20905,8 +20966,8 @@ var Font = (function FontClosure() {
// First try to map the value to a unicode position if a non identity map
// was created.
if (!isIdentityUnicode) {
if (toUnicode[originalCharCode] !== undefined) {
var unicode = toUnicode[fontCharCode];
if (toUnicode.get(originalCharCode) !== undefined) {
var unicode = toUnicode.get(fontCharCode);
// TODO: Try to map ligatures to the correct spot.
if (unicode.length === 1) {
fontCharCode = unicode.charCodeAt(0);
@ -22245,7 +22306,7 @@ var Font = (function FontClosure() { @@ -22245,7 +22306,7 @@ var Font = (function FontClosure() {
var dupFirstEntry = false;
if (properties.type === 'CIDFontType2' && properties.toUnicode &&
properties.toUnicode[0] > '\u0000') {
properties.toUnicode.get(0) > '\u0000') {
// oracle's defect (see 3427), duplicating first entry
dupFirstEntry = true;
numGlyphs++;
@ -22691,19 +22752,12 @@ var Font = (function FontClosure() { @@ -22691,19 +22752,12 @@ var Font = (function FontClosure() {
/**
* Builds a char code to unicode map based on section 9.10 of the spec.
* @param {Object} properties Font properties object.
* @return {Object} Has two properties: 'toUnicode' which maps char codes to
* unicode (string) values and 'isIdentity' which is true if an identity map
* is used.
* @return {Object} A ToUnicodeMap object.
*/
buildToUnicode: function Font_buildToUnicode(properties) {
var map = {
isIdentity: false,
toUnicode: null
};
// Section 9.10.2 Mapping Character Codes to Unicode Values
if (properties.toUnicode && properties.toUnicode.length !== 0) {
map.toUnicode = properties.toUnicode;
return map;
return properties.toUnicode;
}
// According to the spec if the font is a simple font we should only map
// to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or
@ -22768,8 +22822,7 @@ var Font = (function FontClosure() { @@ -22768,8 +22822,7 @@ var Font = (function FontClosure() {
}
toUnicode[charcode] = String.fromCharCode(GlyphsUnicode[glyphName]);
}
map.toUnicode = toUnicode;
return map;
return new ToUnicodeMap(toUnicode);
}
// If the font is a composite font that uses one of the predefined CMaps
// listed in Table 118 (except Identity–H and Identity–V) or whose
@ -22812,19 +22865,12 @@ var Font = (function FontClosure() { @@ -22812,19 +22865,12 @@ var Font = (function FontClosure() {
ucs2.charCodeAt(1));
}
});
map.toUnicode = toUnicode;
return map;
return new ToUnicodeMap(toUnicode);
}
// The viewer's choice, just use an identity map.
toUnicode = [];
var firstChar = properties.firstChar, lastChar = properties.lastChar;
for (var i = firstChar; i <= lastChar; i++) {
toUnicode[i] = String.fromCharCode(i);
}
map.isIdentity = true;
map.toUnicode = toUnicode;
return map;
return new IdentityToUnicodeMap(properties.firstChar,
properties.lastChar);
},
get spaceWidth() {
@ -22852,7 +22898,7 @@ var Font = (function FontClosure() { @@ -22852,7 +22898,7 @@ var Font = (function FontClosure() {
}
// ... via toUnicode map
if (!charcode && 'toUnicode' in this) {
charcode = this.toUnicode.indexOf(glyphUnicode);
charcode = this.toUnicode.charCodeOf(glyphUnicode);
}
// setting it to unicode if negative or undefined
if (charcode <= 0) {
@ -22882,7 +22928,7 @@ var Font = (function FontClosure() { @@ -22882,7 +22928,7 @@ var Font = (function FontClosure() {
width = isNum(width) ? width : this.defaultWidth;
var vmetric = this.vmetrics && this.vmetrics[widthCode];
var unicode = this.toUnicode[charcode] || charcode;
var unicode = this.toUnicode.get(charcode) || charcode;
if (typeof unicode === 'number') {
unicode = String.fromCharCode(unicode);
}

4
build/pdf.js

@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') { @@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
(typeof window !== 'undefined' ? window : this).PDFJS = {};
}
PDFJS.version = '1.0.629';
PDFJS.build = 'a353f88';
PDFJS.version = '1.0.633';
PDFJS.build = '4ce1b1e';
(function pdfjsWrapper() {
// Use strict in our context only - users might not want it

126
build/pdf.worker.js vendored

@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') { @@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
(typeof window !== 'undefined' ? window : this).PDFJS = {};
}
PDFJS.version = '1.0.629';
PDFJS.build = 'a353f88';
PDFJS.version = '1.0.633';
PDFJS.build = '4ce1b1e';
(function pdfjsWrapper() {
// Use strict in our context only - users might not want it
@ -11326,12 +11326,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { @@ -11326,12 +11326,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
},
readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {
var cmapObj = toUnicode;
var cmap, cmapObj = toUnicode;
if (isName(cmapObj)) {
return CMapFactory.create(cmapObj,
cmap = CMapFactory.create(cmapObj,
{ url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null).getMap();
return new ToUnicodeMap(cmap);
} else if (isStream(cmapObj)) {
var cmap = CMapFactory.create(cmapObj,
cmap = CMapFactory.create(cmapObj,
{ url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null).getMap();
// Convert UTF-16BE
// NOTE: cmap can be a sparse array, so use forEach instead of for(;;)
@ -11350,7 +11351,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { @@ -11350,7 +11351,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
}
cmap[i] = String.fromCharCode.apply(String, str);
});
return cmap;
return new ToUnicodeMap(cmap);
}
return null;
},
@ -15697,6 +15698,68 @@ var Glyph = (function GlyphClosure() { @@ -15697,6 +15698,68 @@ var Glyph = (function GlyphClosure() {
return Glyph;
})();
var ToUnicodeMap = (function ToUnicodeMapClosure() {
function ToUnicodeMap(cmap) {
// The elements of this._map can be integers or strings, depending on how
// |cmap| was created.
this._map = cmap;
}
ToUnicodeMap.prototype = {
get length() {
return this._map.length;
},
forEach: function(callback) {
for (var charCode in this._map) {
callback(charCode, this._map[charCode].charCodeAt(0));
}
},
get: function(i) {
return this._map[i];
},
charCodeOf: function(v) {
return this._map.indexOf(v);
}
};
return ToUnicodeMap;
})();
var IdentityToUnicodeMap = (function IdentityToUnicodeMapClosure() {
function IdentityToUnicodeMap(firstChar, lastChar) {
this.firstChar = firstChar;
this.lastChar = lastChar;
}
IdentityToUnicodeMap.prototype = {
get length() {
error('should not access .length');
},
forEach: function(callback) {
for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {
callback(i, i);
}
},
get: function(i) {
if (this.firstChar <= i && i <= this.lastChar) {
return String.fromCharCode(i);
}
return undefined;
},
charCodeOf: function(v) {
error('should not call .charCodeOf');
}
};
return IdentityToUnicodeMap;
})();
/**
* 'Font' is the class the outside world should use, it encapsulate all the font
* decoding logics whatever type it is (assuming the font type is supported).
@ -15740,9 +15803,7 @@ var Font = (function FontClosure() { @@ -15740,9 +15803,7 @@ var Font = (function FontClosure() {
this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;
this.fontMatrix = properties.fontMatrix;
var unicode = this.buildToUnicode(properties);
this.toUnicode = properties.toUnicode = unicode.toUnicode;
this.isIdentityUnicode = properties.isIdentityUnicode = unicode.isIdentity;
this.toUnicode = properties.toUnicode = this.buildToUnicode(properties);
this.toFontChar = [];
@ -15795,7 +15856,7 @@ var Font = (function FontClosure() { @@ -15795,7 +15856,7 @@ var Font = (function FontClosure() {
map[+code] = GlyphMapForStandardFonts[code];
}
this.toFontChar = map;
this.toUnicode = map;
this.toUnicode = new ToUnicodeMap(map);
} else if (/Symbol/i.test(fontName)) {
var symbols = Encodings.SymbolSetEncoding;
for (charCode in symbols) {
@ -15814,15 +15875,14 @@ var Font = (function FontClosure() { @@ -15814,15 +15875,14 @@ var Font = (function FontClosure() {
}
} else {
var unicodeCharCode, notCidFont = (type.indexOf('CIDFontType') === -1);
for (charCode in this.toUnicode) {
unicodeCharCode = this.toUnicode[charCode].charCodeAt(0);
this.toUnicode.forEach(function(charCode, unicodeCharCode) {
if (notCidFont) {
glyphName = (properties.differences[charCode] ||
properties.defaultEncoding[charCode]);
unicodeCharCode = (GlyphsUnicode[glyphName] || unicodeCharCode);
}
this.toFontChar[charCode] = unicodeCharCode;
}
}.bind(this));
}
this.loadedName = fontName.split('-')[0];
this.loading = false;
@ -16035,7 +16095,8 @@ var Font = (function FontClosure() { @@ -16035,7 +16095,8 @@ var Font = (function FontClosure() {
function adjustMapping(charCodeToGlyphId, properties) {
var toUnicode = properties.toUnicode;
var isSymbolic = !!(properties.flags & FontFlags.Symbolic);
var isIdentityUnicode = properties.isIdentityUnicode;
var isIdentityUnicode =
properties.toUnicode instanceof IdentityToUnicodeMap;
var isCidFontType2 = (properties.type === 'CIDFontType2');
var newMap = Object.create(null);
var toFontChar = [];
@ -16048,8 +16109,8 @@ var Font = (function FontClosure() { @@ -16048,8 +16109,8 @@ var Font = (function FontClosure() {
// First try to map the value to a unicode position if a non identity map
// was created.
if (!isIdentityUnicode) {
if (toUnicode[originalCharCode] !== undefined) {
var unicode = toUnicode[fontCharCode];
if (toUnicode.get(originalCharCode) !== undefined) {
var unicode = toUnicode.get(fontCharCode);
// TODO: Try to map ligatures to the correct spot.
if (unicode.length === 1) {
fontCharCode = unicode.charCodeAt(0);
@ -17388,7 +17449,7 @@ var Font = (function FontClosure() { @@ -17388,7 +17449,7 @@ var Font = (function FontClosure() {
var dupFirstEntry = false;
if (properties.type === 'CIDFontType2' && properties.toUnicode &&
properties.toUnicode[0] > '\u0000') {
properties.toUnicode.get(0) > '\u0000') {
// oracle's defect (see 3427), duplicating first entry
dupFirstEntry = true;
numGlyphs++;
@ -17834,19 +17895,12 @@ var Font = (function FontClosure() { @@ -17834,19 +17895,12 @@ var Font = (function FontClosure() {
/**
* Builds a char code to unicode map based on section 9.10 of the spec.
* @param {Object} properties Font properties object.
* @return {Object} Has two properties: 'toUnicode' which maps char codes to
* unicode (string) values and 'isIdentity' which is true if an identity map
* is used.
* @return {Object} A ToUnicodeMap object.
*/
buildToUnicode: function Font_buildToUnicode(properties) {
var map = {
isIdentity: false,
toUnicode: null
};
// Section 9.10.2 Mapping Character Codes to Unicode Values
if (properties.toUnicode && properties.toUnicode.length !== 0) {
map.toUnicode = properties.toUnicode;
return map;
return properties.toUnicode;
}
// According to the spec if the font is a simple font we should only map
// to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or
@ -17911,8 +17965,7 @@ var Font = (function FontClosure() { @@ -17911,8 +17965,7 @@ var Font = (function FontClosure() {
}
toUnicode[charcode] = String.fromCharCode(GlyphsUnicode[glyphName]);
}
map.toUnicode = toUnicode;
return map;
return new ToUnicodeMap(toUnicode);
}
// If the font is a composite font that uses one of the predefined CMaps
// listed in Table 118 (except Identity–H and Identity–V) or whose
@ -17955,19 +18008,12 @@ var Font = (function FontClosure() { @@ -17955,19 +18008,12 @@ var Font = (function FontClosure() {
ucs2.charCodeAt(1));
}
});
map.toUnicode = toUnicode;
return map;
return new ToUnicodeMap(toUnicode);
}
// The viewer's choice, just use an identity map.
toUnicode = [];
var firstChar = properties.firstChar, lastChar = properties.lastChar;
for (var i = firstChar; i <= lastChar; i++) {
toUnicode[i] = String.fromCharCode(i);
}
map.isIdentity = true;
map.toUnicode = toUnicode;
return map;
return new IdentityToUnicodeMap(properties.firstChar,
properties.lastChar);
},
get spaceWidth() {
@ -17995,7 +18041,7 @@ var Font = (function FontClosure() { @@ -17995,7 +18041,7 @@ var Font = (function FontClosure() {
}
// ... via toUnicode map
if (!charcode && 'toUnicode' in this) {
charcode = this.toUnicode.indexOf(glyphUnicode);
charcode = this.toUnicode.charCodeOf(glyphUnicode);
}
// setting it to unicode if negative or undefined
if (charcode <= 0) {
@ -18025,7 +18071,7 @@ var Font = (function FontClosure() { @@ -18025,7 +18071,7 @@ var Font = (function FontClosure() {
width = isNum(width) ? width : this.defaultWidth;
var vmetric = this.vmetrics && this.vmetrics[widthCode];
var unicode = this.toUnicode[charcode] || charcode;
var unicode = this.toUnicode.get(charcode) || charcode;
if (typeof unicode === 'number') {
unicode = String.fromCharCode(unicode);
}

2
package.json

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
{
"name": "pdfjs-dist",
"version": "1.0.629",
"version": "1.0.633",
"description": "Generic build of Mozilla's PDF.js library.",
"keywords": [
"Mozilla",

Loading…
Cancel
Save