|
|
@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') { |
|
|
|
(typeof window !== 'undefined' ? window : this).PDFJS = {}; |
|
|
|
(typeof window !== 'undefined' ? window : this).PDFJS = {}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
PDFJS.version = '1.0.589'; |
|
|
|
PDFJS.version = '1.0.592'; |
|
|
|
PDFJS.build = 'df8d257'; |
|
|
|
PDFJS.build = '46a9a35'; |
|
|
|
|
|
|
|
|
|
|
|
(function pdfjsWrapper() { |
|
|
|
(function pdfjsWrapper() { |
|
|
|
// Use strict in our context only - users might not want it
|
|
|
|
// Use strict in our context only - users might not want it
|
|
|
@ -467,7 +467,7 @@ function bytesToString(bytes) { |
|
|
|
|
|
|
|
|
|
|
|
function stringToArray(str) { |
|
|
|
function stringToArray(str) { |
|
|
|
var length = str.length; |
|
|
|
var length = str.length; |
|
|
|
var array = []; |
|
|
|
var array = new Uint16Array(length); |
|
|
|
for (var i = 0; i < length; ++i) { |
|
|
|
for (var i = 0; i < length; ++i) { |
|
|
|
array[i] = str.charCodeAt(i); |
|
|
|
array[i] = str.charCodeAt(i); |
|
|
|
} |
|
|
|
} |
|
|
@ -17799,6 +17799,14 @@ var BinaryCMapReader = (function BinaryCMapReaderClosure() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function hexToStr(a, size) { |
|
|
|
function hexToStr(a, size) { |
|
|
|
|
|
|
|
// This code is hot. Special-case some common values to avoid creating an
|
|
|
|
|
|
|
|
// object with subarray().
|
|
|
|
|
|
|
|
if (size == 1) { |
|
|
|
|
|
|
|
return String.fromCharCode(a[0], a[1]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (size == 3) { |
|
|
|
|
|
|
|
return String.fromCharCode(a[0], a[1], a[2], a[3]); |
|
|
|
|
|
|
|
} |
|
|
|
return String.fromCharCode.apply(null, a.subarray(0, size + 1)); |
|
|
|
return String.fromCharCode.apply(null, a.subarray(0, size + 1)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -20749,17 +20757,43 @@ var Font = (function FontClosure() { |
|
|
|
// length
|
|
|
|
// length
|
|
|
|
var length = data.length; |
|
|
|
var length = data.length; |
|
|
|
|
|
|
|
|
|
|
|
// Per spec tables must be 4-bytes align so add padding as needed
|
|
|
|
// Per spec tables must be 4-bytes align so add padding as needed.
|
|
|
|
while (data.length & 3) { |
|
|
|
var paddedLength = length; |
|
|
|
data.push(0x00); |
|
|
|
while (paddedLength & 3) { |
|
|
|
|
|
|
|
paddedLength++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var i; |
|
|
|
|
|
|
|
var padding = paddedLength - length; |
|
|
|
|
|
|
|
if (padding !== 0) { |
|
|
|
|
|
|
|
// Padding is required. |data| can be an Array, Uint8Array, or
|
|
|
|
|
|
|
|
// Uint16Array. In the latter two cases we need to create slightly larger
|
|
|
|
|
|
|
|
// typed arrays and copy the old contents in. Fortunately that's not a
|
|
|
|
|
|
|
|
// common case.
|
|
|
|
|
|
|
|
var data2; |
|
|
|
|
|
|
|
if (data instanceof Array) { |
|
|
|
|
|
|
|
for (i = 0; i < padding; i++) { |
|
|
|
|
|
|
|
data.push(0); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else if (data instanceof Uint8Array) { |
|
|
|
|
|
|
|
data2 = new Uint8Array(paddedLength); |
|
|
|
|
|
|
|
data2.set(data); |
|
|
|
|
|
|
|
data = data2; |
|
|
|
|
|
|
|
} else if (data instanceof Uint16Array) { |
|
|
|
|
|
|
|
data2 = new Uint16Array(paddedLength); |
|
|
|
|
|
|
|
data2.set(data); |
|
|
|
|
|
|
|
data = data2; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
error('bad array kind in createTableEntry'); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
while (file.virtualOffset & 3) { |
|
|
|
while (file.virtualOffset & 3) { |
|
|
|
file.virtualOffset++; |
|
|
|
file.virtualOffset++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// checksum
|
|
|
|
// checksum
|
|
|
|
var checksum = 0, n = data.length; |
|
|
|
var checksum = 0, n = data.length; |
|
|
|
for (var i = 0; i < n; i += 4) { |
|
|
|
for (i = 0; i < n; i += 4) { |
|
|
|
checksum = (checksum + int32(data[i], data[i + 1], data[i + 2], |
|
|
|
checksum = (checksum + int32(data[i], data[i + 1], data[i + 2], |
|
|
|
data[i + 3])) | 0; |
|
|
|
data[i + 3])) | 0; |
|
|
|
} |
|
|
|
} |
|
|
@ -20768,6 +20802,8 @@ var Font = (function FontClosure() { |
|
|
|
string32(offset) + string32(length)); |
|
|
|
string32(offset) + string32(length)); |
|
|
|
file.file += tableEntry; |
|
|
|
file.file += tableEntry; |
|
|
|
file.virtualOffset += data.length; |
|
|
|
file.virtualOffset += data.length; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return data; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function isTrueTypeFile(file) { |
|
|
|
function isTrueTypeFile(file) { |
|
|
@ -22379,13 +22415,7 @@ var Font = (function FontClosure() { |
|
|
|
// rewrite the tables but tweak offsets
|
|
|
|
// rewrite the tables but tweak offsets
|
|
|
|
for (i = 0; i < numTables; i++) { |
|
|
|
for (i = 0; i < numTables; i++) { |
|
|
|
table = tables[tablesNames[i]]; |
|
|
|
table = tables[tablesNames[i]]; |
|
|
|
var data = []; |
|
|
|
table.data = createTableEntry(ttf, table.tag, table.data); |
|
|
|
|
|
|
|
|
|
|
|
tableData = table.data; |
|
|
|
|
|
|
|
for (var j = 0, jj = tableData.length; j < jj; j++) { |
|
|
|
|
|
|
|
data.push(tableData[j]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
createTableEntry(ttf, table.tag, data); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Add the table datas
|
|
|
|
// Add the table datas
|
|
|
@ -22580,7 +22610,7 @@ var Font = (function FontClosure() { |
|
|
|
|
|
|
|
|
|
|
|
var field; |
|
|
|
var field; |
|
|
|
for (field in fields) { |
|
|
|
for (field in fields) { |
|
|
|
createTableEntry(otf, field, fields[field]); |
|
|
|
fields[field] = createTableEntry(otf, field, fields[field]); |
|
|
|
} |
|
|
|
} |
|
|
|
for (field in fields) { |
|
|
|
for (field in fields) { |
|
|
|
var table = fields[field]; |
|
|
|
var table = fields[field]; |
|
|
|