Merge pull request #312 from kkujala/master

Correct the coding style according to gjslint.
This commit is contained in:
Chris Jones 2011-08-08 13:33:01 -07:00
commit b628d06e9d
3 changed files with 190 additions and 190 deletions

186
fonts.js
View File

@ -19,46 +19,46 @@ var kMaxWaitForFontFace = 1000;
* fonts and their acronyms. * fonts and their acronyms.
*/ */
var stdFontMap = { var stdFontMap = {
"Arial": "Helvetica", 'Arial': 'Helvetica',
"Arial_Bold": "Helvetica-Bold", 'Arial_Bold': 'Helvetica-Bold',
"Arial_BoldItalic": "Helvetica-BoldOblique", 'Arial_BoldItalic': 'Helvetica-BoldOblique',
"Arial_Italic": "Helvetica-Oblique", 'Arial_Italic': 'Helvetica-Oblique',
"Arial_BoldItalicMT": "Helvetica-BoldOblique", 'Arial_BoldItalicMT': 'Helvetica-BoldOblique',
"Arial_BoldMT": "Helvetica-Bold", 'Arial_BoldMT': 'Helvetica-Bold',
"Arial_ItalicMT": "Helvetica-Oblique", 'Arial_ItalicMT': 'Helvetica-Oblique',
"ArialMT": "Helvetica", 'ArialMT': 'Helvetica',
"Courier_Bold": "Courier-Bold", 'Courier_Bold': 'Courier-Bold',
"Courier_BoldItalic": "Courier-BoldOblique", 'Courier_BoldItalic': 'Courier-BoldOblique',
"Courier_Italic": "Courier-Oblique", 'Courier_Italic': 'Courier-Oblique',
"CourierNew": "Courier", 'CourierNew': 'Courier',
"CourierNew_Bold": "Courier-Bold", 'CourierNew_Bold': 'Courier-Bold',
"CourierNew_BoldItalic": "Courier-BoldOblique", 'CourierNew_BoldItalic': 'Courier-BoldOblique',
"CourierNew_Italic": "Courier-Oblique", 'CourierNew_Italic': 'Courier-Oblique',
"CourierNewPS_BoldItalicMT": "Courier-BoldOblique", 'CourierNewPS_BoldItalicMT': 'Courier-BoldOblique',
"CourierNewPS_BoldMT": "Courier-Bold", 'CourierNewPS_BoldMT': 'Courier-Bold',
"CourierNewPS_ItalicMT": "Courier-Oblique", 'CourierNewPS_ItalicMT': 'Courier-Oblique',
"CourierNewPSMT": "Courier", 'CourierNewPSMT': 'Courier',
"Helvetica_Bold": "Helvetica-Bold", 'Helvetica_Bold': 'Helvetica-Bold',
"Helvetica_BoldItalic": "Helvetica-BoldOblique", 'Helvetica_BoldItalic': 'Helvetica-BoldOblique',
"Helvetica_Italic": "Helvetica-Oblique", 'Helvetica_Italic': 'Helvetica-Oblique',
"Symbol_Bold": "Symbol", 'Symbol_Bold': 'Symbol',
"Symbol_BoldItalic": "Symbol", 'Symbol_BoldItalic': 'Symbol',
"Symbol_Italic": "Symbol", 'Symbol_Italic': 'Symbol',
"TimesNewRoman": "Times-Roman", 'TimesNewRoman': 'Times-Roman',
"TimesNewRoman_Bold": "Times-Bold", 'TimesNewRoman_Bold': 'Times-Bold',
"TimesNewRoman_BoldItalic": "Times-BoldItalic", 'TimesNewRoman_BoldItalic': 'Times-BoldItalic',
"TimesNewRoman_Italic": "Times-Italic", 'TimesNewRoman_Italic': 'Times-Italic',
"TimesNewRomanPS": "Times-Roman", 'TimesNewRomanPS': 'Times-Roman',
"TimesNewRomanPS_Bold": "Times-Bold", 'TimesNewRomanPS_Bold': 'Times-Bold',
"TimesNewRomanPS_BoldItalic": "Times-BoldItalic", 'TimesNewRomanPS_BoldItalic': 'Times-BoldItalic',
"TimesNewRomanPS_BoldItalicMT": "Times-BoldItalic", 'TimesNewRomanPS_BoldItalicMT': 'Times-BoldItalic',
"TimesNewRomanPS_BoldMT": "Times-Bold", 'TimesNewRomanPS_BoldMT': 'Times-Bold',
"TimesNewRomanPS_Italic": "Times-Italic", 'TimesNewRomanPS_Italic': 'Times-Italic',
"TimesNewRomanPS_ItalicMT": "Times-Italic", 'TimesNewRomanPS_ItalicMT': 'Times-Italic',
"TimesNewRomanPSMT": "Times-Roman", 'TimesNewRomanPSMT': 'Times-Roman',
"TimesNewRomanPSMT_Bold": "Times-Bold", 'TimesNewRomanPSMT_Bold': 'Times-Bold',
"TimesNewRomanPSMT_BoldItalic": "Times-BoldItalic", 'TimesNewRomanPSMT_BoldItalic': 'Times-BoldItalic',
"TimesNewRomanPSMT_Italic": "Times-Italic" 'TimesNewRomanPSMT_Italic': 'Times-Italic'
}; };
var FontMeasure = (function FontMeasure() { var FontMeasure = (function FontMeasure() {
@ -76,14 +76,14 @@ var FontMeasure = (function FontMeasure() {
if (!(measureCache = sizes[size])) if (!(measureCache = sizes[size]))
measureCache = sizes[size] = Object.create(null); measureCache = sizes[size] = Object.create(null);
} else { } else {
measureCache = null measureCache = null;
} }
var name = font.loadedName; var name = font.loadedName;
var bold = font.bold ? "bold" : "normal"; var bold = font.bold ? 'bold' : 'normal';
var italic = font.italic ? "italic" : "normal"; var italic = font.italic ? 'italic' : 'normal';
size *= kScalePrecision; size *= kScalePrecision;
var rule = bold + " " + italic + " " + size + 'px "' + name + '"'; var rule = bold + ' ' + italic + ' ' + size + 'px "' + name + '"';
ctx.font = rule; ctx.font = rule;
}, },
measureText: function fonts_measureText(text) { measureText: function fonts_measureText(text) {
@ -144,7 +144,7 @@ var FontLoader = {
if (!isWorker && rules.length) { if (!isWorker && rules.length) {
FontLoader.prepareFontLoadEvent(rules, names, objs); FontLoader.prepareFontLoadEvent(rules, names, objs);
} }
if (!checkFontsLoaded()) { if (!checkFontsLoaded()) {
document.documentElement.addEventListener( document.documentElement.addEventListener(
'pdfjsFontLoad', checkFontsLoaded, false); 'pdfjsFontLoad', checkFontsLoaded, false);
@ -402,9 +402,9 @@ var Font = (function Font() {
if (!file) { if (!file) {
var fontName = stdFontMap[name]; var fontName = stdFontMap[name];
this.bold = (fontName.indexOf("Bold") != -1); this.bold = (fontName.indexOf('Bold') != -1);
this.italic = (fontName.indexOf("Oblique") != -1); this.italic = (fontName.indexOf('Oblique') != -1);
this.loadedName = fontName.split("-")[0]; this.loadedName = fontName.split('-')[0];
this.loading = false; this.loading = false;
return; return;
} }
@ -414,7 +414,7 @@ var Font = (function Font() {
case 'Type1': case 'Type1':
case 'CIDFontType0': case 'CIDFontType0':
this.mimetype = 'font/opentype'; this.mimetype = 'font/opentype';
var subtype = properties.subtype; var subtype = properties.subtype;
if (subtype === 'Type1C') { if (subtype === 'Type1C') {
var cff = new Type2CFF(file, properties); var cff = new Type2CFF(file, properties);
@ -535,8 +535,8 @@ var Font = (function Font() {
// checksum // checksum
var checksum = 0, n = data.length; var checksum = 0, n = data.length;
for (var i = 0; i < n; i+=4) for (var i = 0; i < n; i += 4)
checksum = (checksum + int32([data[i], data[i+1], data[i+2], data[i+3]])) | 0; checksum = (checksum + int32([data[i], data[i + 1], data[i + 2], data[i + 3]])) | 0;
var tableEntry = (tag + string32(checksum) + var tableEntry = (tag + string32(checksum) +
string32(offset) + string32(length)); string32(offset) + string32(length));
@ -567,7 +567,7 @@ var Font = (function Font() {
} }
ranges.push([start, end]); ranges.push([start, end]);
} }
return ranges; return ranges;
}; };
@ -598,7 +598,7 @@ var Font = (function Font() {
var range = ranges[i]; var range = ranges[i];
var start = range[0]; var start = range[0];
var end = range[1]; var end = range[1];
var offset = (segCount - i) * 2 + bias * 2; var offset = (segCount - i) * 2 + bias * 2;
bias += (end - start + 1); bias += (end - start + 1);
startCount += string16(start); startCount += string16(start);
@ -730,30 +730,30 @@ var Font = (function Font() {
'Unknown', // 8.Manufacturer 'Unknown', // 8.Manufacturer
'Unknown' // 9.Designer 'Unknown' // 9.Designer
]; ];
// Mac want 1-byte per character strings while Windows want // Mac want 1-byte per character strings while Windows want
// 2-bytes per character, so duplicate the names table // 2-bytes per character, so duplicate the names table
var stringsUnicode = []; var stringsUnicode = [];
for (var i = 0; i < strings.length; i++) { for (var i = 0; i < strings.length; i++) {
var str = strings[i]; var str = strings[i];
var strUnicode = ''; var strUnicode = '';
for (var j = 0; j < str.length; j++) for (var j = 0; j < str.length; j++)
strUnicode += string16(str.charCodeAt(j)); strUnicode += string16(str.charCodeAt(j));
stringsUnicode.push(strUnicode); stringsUnicode.push(strUnicode);
} }
var names = [strings, stringsUnicode]; var names = [strings, stringsUnicode];
var platforms = ['\x00\x01', '\x00\x03']; var platforms = ['\x00\x01', '\x00\x03'];
var encodings = ['\x00\x00', '\x00\x01']; var encodings = ['\x00\x00', '\x00\x01'];
var languages = ['\x00\x00', '\x04\x09']; var languages = ['\x00\x00', '\x04\x09'];
var namesRecordCount = strings.length * platforms.length; var namesRecordCount = strings.length * platforms.length;
var nameTable = var nameTable =
'\x00\x00' + // format '\x00\x00' + // format
string16(namesRecordCount) + // Number of names Record string16(namesRecordCount) + // Number of names Record
string16(namesRecordCount * 12 + 6); // Storage string16(namesRecordCount * 12 + 6); // Storage
// Build the name records field // Build the name records field
var strOffset = 0; var strOffset = 0;
for (var i = 0; i < platforms.length; i++) { for (var i = 0; i < platforms.length; i++) {
@ -771,7 +771,7 @@ var Font = (function Font() {
strOffset += str.length; strOffset += str.length;
} }
} }
nameTable += strings.join('') + stringsUnicode.join(''); nameTable += strings.join('') + stringsUnicode.join('');
return nameTable; return nameTable;
} }
@ -838,14 +838,14 @@ var Font = (function Font() {
encodingID: int16(font.getBytes(2)), encodingID: int16(font.getBytes(2)),
offset: int32(font.getBytes(4)) offset: int32(font.getBytes(4))
}); });
}; }
var encoding = properties.encoding; var encoding = properties.encoding;
var charset = properties.charset; var charset = properties.charset;
for (var i = 0; i < numRecords; i++) { for (var i = 0; i < numRecords; i++) {
var table = records[i]; var table = records[i];
font.pos = start + table.offset; font.pos = start + table.offset;
var format = int16(font.getBytes(2)); var format = int16(font.getBytes(2));
var length = int16(font.getBytes(2)); var length = int16(font.getBytes(2));
var language = int16(font.getBytes(2)); var language = int16(font.getBytes(2));
@ -855,19 +855,19 @@ var Font = (function Font() {
// into the platform so if some characters in the font are assigned // into the platform so if some characters in the font are assigned
// under this limit they will not be displayed so let's rewrite the // under this limit they will not be displayed so let's rewrite the
// CMap. // CMap.
var glyphs = []; var glyphs = [];
var deltas = []; var deltas = [];
for (var j = 0; j < 256; j++) { for (var j = 0; j < 256; j++) {
var index = font.getByte(); var index = font.getByte();
if (index) { if (index) {
deltas.push(index); deltas.push(index);
glyphs.push({ unicode : j }); glyphs.push({ unicode: j });
} }
} }
var rewrite = false; var rewrite = false;
for (var code in encoding) { for (var code in encoding) {
if (code < 0x20 && encoding[code]) if (code < 0x20 && encoding[code])
rewrite = true; rewrite = true;
if (rewrite) if (rewrite)
@ -1005,11 +1005,11 @@ var Font = (function Font() {
((hmtx.length - numOfHMetrics * 4) >> 1); ((hmtx.length - numOfHMetrics * 4) >> 1);
if (numMissing > 0) { if (numMissing > 0) {
font.pos = (font.start ? font.start : 0) + hmtx.offset; font.pos = (font.start ? font.start : 0) + hmtx.offset;
var metrics = ""; var metrics = '';
for (var i = 0; i < hmtx.length; i++) for (var i = 0; i < hmtx.length; i++)
metrics += String.fromCharCode(font.getByte()); metrics += String.fromCharCode(font.getByte());
for (var i = 0; i < numMissing; i++) for (var i = 0; i < numMissing; i++)
metrics += "\x00\x00"; metrics += '\x00\x00';
hmtx.data = stringToArray(metrics); hmtx.data = stringToArray(metrics);
} }
@ -1024,7 +1024,7 @@ var Font = (function Font() {
if (properties.type == 'CIDFontType2') { if (properties.type == 'CIDFontType2') {
// Type2 composite fonts map characters directly to glyphs so the cmap // Type2 composite fonts map characters directly to glyphs so the cmap
// table must be replaced. // table must be replaced.
var glyphs = []; var glyphs = [];
var charset = properties.charset; var charset = properties.charset;
if (!charset.length) { if (!charset.length) {
@ -1254,25 +1254,25 @@ var Font = (function Font() {
charsToUnicode: function fonts_chars2Unicode(chars) { charsToUnicode: function fonts_chars2Unicode(chars) {
var charsCache = this.charsCache; var charsCache = this.charsCache;
var str; var str;
// if we translated this string before, just grab it from the cache // if we translated this string before, just grab it from the cache
if (charsCache) { if (charsCache) {
str = charsCache[chars]; str = charsCache[chars];
if (str) if (str)
return str; return str;
} }
// lazily create the translation cache // lazily create the translation cache
if (!charsCache) if (!charsCache)
charsCache = this.charsCache = Object.create(null); charsCache = this.charsCache = Object.create(null);
if (this.compositeFont) { if (this.compositeFont) {
// composite fonts have multi-byte strings // composite fonts have multi-byte strings
// convert the string from single-byte to multi-byte // convert the string from single-byte to multi-byte
// XXX assuming CIDFonts are two-byte - later need to extract the correct byte encoding // XXX assuming CIDFonts are two-byte - later need to extract the correct byte encoding
// according to the PDF spec // according to the PDF spec
str = ''; str = '';
var multiByteStr = ""; var multiByteStr = '';
var length = chars.length; var length = chars.length;
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
var byte1 = chars.charCodeAt(i++) & 0xFF; var byte1 = chars.charCodeAt(i++) & 0xFF;
@ -1290,7 +1290,7 @@ var Font = (function Font() {
var encoding = this.encoding; var encoding = this.encoding;
if (!encoding) if (!encoding)
return chars; return chars;
str = ''; str = '';
for (var i = 0; i < chars.length; ++i) { for (var i = 0; i < chars.length; ++i) {
var charcode = chars.charCodeAt(i); var charcode = chars.charCodeAt(i);
@ -1298,14 +1298,14 @@ var Font = (function Font() {
if ('undefined' == typeof(unicode)) { if ('undefined' == typeof(unicode)) {
// FIXME/issue 233: we're hitting this in test/pdf/sizes.pdf // FIXME/issue 233: we're hitting this in test/pdf/sizes.pdf
// at the moment, for unknown reasons. // at the moment, for unknown reasons.
warn('Unencoded charcode '+ charcode); warn('Unencoded charcode ' + charcode);
unicode = charcode; unicode = charcode;
} }
// Check if the glyph has already been converted // Check if the glyph has already been converted
if (!IsNum(unicode)) if (!IsNum(unicode))
unicode = encoding[unicode] = GlyphsUnicode[unicode.name]; unicode = encoding[unicode] = GlyphsUnicode[unicode.name];
// Handle surrogate pairs // Handle surrogate pairs
if (unicode > 0xFFFF) { if (unicode > 0xFFFF) {
str += String.fromCharCode(unicode & 0xFFFF); str += String.fromCharCode(unicode & 0xFFFF);
@ -2043,7 +2043,7 @@ CFF.prototype = {
BlueFuzz: '\x0c\x0b', BlueFuzz: '\x0c\x0b',
BlueScale: '\x0c\x09', BlueScale: '\x0c\x09',
LanguageGroup: '\x0c\x11', LanguageGroup: '\x0c\x11',
ExpansionFactor: '\x0c\x18' ExpansionFactor: '\x0c\x18'
}; };
for (var field in fieldMap) { for (var field in fieldMap) {
if (!properties.private.hasOwnProperty(field)) continue; if (!properties.private.hasOwnProperty(field)) continue;
@ -2087,10 +2087,10 @@ var Type2CFF = (function() {
var bytes = file.getBytes(); var bytes = file.getBytes();
this.bytes = bytes; this.bytes = bytes;
this.properties = properties; this.properties = properties;
// Other classes expect this.data to be a Javascript array // Other classes expect this.data to be a Javascript array
var data = [] var data = [];
for (var i = 0, ii = bytes.length; i < ii; ++i) for (var i = 0, ii = bytes.length; i < ii; ++i)
data.push(bytes[i]); data.push(bytes[i]);
this.data = data; this.data = data;
@ -2101,11 +2101,11 @@ var Type2CFF = (function() {
parse: function cff_parse() { parse: function cff_parse() {
var header = this.parseHeader(); var header = this.parseHeader();
var nameIndex = this.parseIndex(header.endPos); var nameIndex = this.parseIndex(header.endPos);
var dictIndex = this.parseIndex(nameIndex.endPos); var dictIndex = this.parseIndex(nameIndex.endPos);
if (dictIndex.length != 1) if (dictIndex.length != 1)
error('More than 1 font'); error('More than 1 font');
var stringIndex = this.parseIndex(dictIndex.endPos); var stringIndex = this.parseIndex(dictIndex.endPos);
var gsubrIndex = this.parseIndex(stringIndex.endPos); var gsubrIndex = this.parseIndex(stringIndex.endPos);
@ -2121,7 +2121,7 @@ var Type2CFF = (function() {
var privOffset = privInfo[1], privLength = privInfo[0]; var privOffset = privInfo[1], privLength = privInfo[0];
var privBytes = bytes.subarray(privOffset, privOffset + privLength); var privBytes = bytes.subarray(privOffset, privOffset + privLength);
baseDict = this.parseDict(privBytes); baseDict = this.parseDict(privBytes);
var privDict = this.getPrivDict(baseDict, strings); var privDict = this.getPrivDict(baseDict, strings);
TODO('Parse encoding'); TODO('Parse encoding');
var charStrings = this.parseIndex(topDict['CharStrings']); var charStrings = this.parseIndex(topDict['CharStrings']);
@ -2132,7 +2132,7 @@ var Type2CFF = (function() {
// containing mappings for {unicode, width}) // containing mappings for {unicode, width})
var charstrings = this.getCharStrings(charset, charStrings, var charstrings = this.getCharStrings(charset, charStrings,
privDict, this.properties); privDict, this.properties);
// create the mapping between charstring and glyph id // create the mapping between charstring and glyph id
var glyphIds = []; var glyphIds = [];
for (var i = 0, ii = charstrings.length; i < ii; ++i) { for (var i = 0, ii = charstrings.length; i < ii; ++i) {
@ -2225,7 +2225,7 @@ var Type2CFF = (function() {
var pair = baseDict[i]; var pair = baseDict[i];
var key = pair[0]; var key = pair[0];
var value = pair[1]; var value = pair[1];
switch(key) { switch (key) {
case 20: case 20:
dict['defaultWidthX'] = value[0]; dict['defaultWidthX'] = value[0];
case 21: case 21:
@ -2247,7 +2247,7 @@ var Type2CFF = (function() {
var pair = baseDict[i]; var pair = baseDict[i];
var key = pair[0]; var key = pair[0];
var value = pair[1]; var value = pair[1];
switch(key) { switch (key) {
case 1: case 1:
dict['Notice'] = strings[value[0]]; dict['Notice'] = strings[value[0]];
break; break;
@ -2283,7 +2283,7 @@ var Type2CFF = (function() {
}, },
getStrings: function cff_getstrings(stringIndex) { getStrings: function cff_getstrings(stringIndex) {
function bytesToString(bytesArr) { function bytesToString(bytesArr) {
var s = ""; var s = '';
for (var i = 0, ii = bytesArr.length; i < ii; ++i) for (var i = 0, ii = bytesArr.length; i < ii; ++i)
s += String.fromCharCode(bytesArr[i]); s += String.fromCharCode(bytesArr[i]);
return s; return s;
@ -2302,11 +2302,11 @@ var Type2CFF = (function() {
var bytes = this.bytes; var bytes = this.bytes;
var offset = 0; var offset = 0;
while(bytes[offset] != 1) while (bytes[offset] != 1)
++offset; ++offset;
if (offset != 0) { if (offset != 0) {
warning("cff data is shifted"); warning('cff data is shifted');
bytes = bytes.subarray(offset); bytes = bytes.subarray(offset);
this.bytes = bytes; this.bytes = bytes;
} }
@ -2314,7 +2314,7 @@ var Type2CFF = (function() {
return { return {
endPos: bytes[2], endPos: bytes[2],
offsetSize: bytes[3] offsetSize: bytes[3]
} };
}, },
parseDict: function cff_parseDict(dict) { parseDict: function cff_parseDict(dict) {
var pos = 0; var pos = 0;
@ -2345,7 +2345,7 @@ var Type2CFF = (function() {
}; };
function parseFloatOperand() { function parseFloatOperand() {
var str = ""; var str = '';
var eof = 15; var eof = 15;
var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8',
'9', '.', 'E', 'E-', null, '-']; '9', '.', 'E', 'E-', null, '-'];
@ -2368,7 +2368,7 @@ var Type2CFF = (function() {
var operands = []; var operands = [];
var entries = []; var entries = [];
var pos = 0; var pos = 0;
var end = dict.length; var end = dict.length;
while (pos < end) { while (pos < end) {
@ -2421,8 +2421,8 @@ var Type2CFF = (function() {
}, },
length: count, length: count,
endPos: end endPos: end
} };
}, }
}; };
return constructor; return constructor;

168
pdf.js
View File

@ -48,9 +48,9 @@ function backtrace() {
var stackStr; var stackStr;
try { try {
throw new Error(); throw new Error();
} catch(e) { } catch (e) {
stackStr = e.stack; stackStr = e.stack;
}; }
return stackStr.split('\n').slice(1).join('\n'); return stackStr.split('\n').slice(1).join('\n');
} }
@ -927,10 +927,10 @@ var AsciiHexStream = (function() {
function constructor(str) { function constructor(str) {
this.str = str; this.str = str;
this.dict = str.dict; this.dict = str.dict;
DecodeStream.call(this); DecodeStream.call(this);
} }
var hexvalueMap = { var hexvalueMap = {
9: -1, // \t 9: -1, // \t
32: -1, // space 32: -1, // space
@ -959,35 +959,35 @@ var AsciiHexStream = (function() {
}; };
constructor.prototype = Object.create(DecodeStream.prototype); constructor.prototype = Object.create(DecodeStream.prototype);
constructor.prototype.readBlock = function() { constructor.prototype.readBlock = function() {
var gtCode = '>'.charCodeAt(0), bytes = this.str.getBytes(), c, n, var gtCode = '>'.charCodeAt(0), bytes = this.str.getBytes(), c, n,
decodeLength, buffer, bufferLength, i, length; decodeLength, buffer, bufferLength, i, length;
decodeLength = (bytes.length + 1) >> 1; decodeLength = (bytes.length + 1) >> 1;
buffer = this.ensureBuffer(this.bufferLength + decodeLength); buffer = this.ensureBuffer(this.bufferLength + decodeLength);
bufferLength = this.bufferLength; bufferLength = this.bufferLength;
for(i = 0, length = bytes.length; i < length; i++) { for (i = 0, length = bytes.length; i < length; i++) {
c = hexvalueMap[bytes[i]]; c = hexvalueMap[bytes[i]];
while (c == -1 && (i+1) < length) { while (c == -1 && (i + 1) < length) {
c = hexvalueMap[bytes[++i]]; c = hexvalueMap[bytes[++i]];
} }
if((i+1) < length && (bytes[i+1] !== gtCode)) { if ((i + 1) < length && (bytes[i + 1] !== gtCode)) {
n = hexvalueMap[bytes[++i]]; n = hexvalueMap[bytes[++i]];
buffer[bufferLength++] = c*16+n; buffer[bufferLength++] = c * 16 + n;
} else { } else {
if(bytes[i] !== gtCode) { // EOD marker at an odd number, behave as if a 0 followed the last digit. if (bytes[i] !== gtCode) { // EOD marker at an odd number, behave as if a 0 followed the last digit.
buffer[bufferLength++] = c*16; buffer[bufferLength++] = c * 16;
} }
} }
} }
this.bufferLength = bufferLength; this.bufferLength = bufferLength;
this.eof = true; this.eof = true;
}; };
return constructor; return constructor;
})(); })();
@ -2983,7 +2983,7 @@ var Page = (function() {
create: Date.now(), create: Date.now(),
compile: 0.0, compile: 0.0,
fonts: 0.0, fonts: 0.0,
render: 0.0, render: 0.0
}; };
this.xref = xref; this.xref = xref;
} }
@ -3037,7 +3037,7 @@ var Page = (function() {
return shadow(this, 'height', height); return shadow(this, 'height', height);
}, },
get rotate() { get rotate() {
var rotate = this.inheritPageProp("Rotate") || 0; var rotate = this.inheritPageProp('Rotate') || 0;
// Normalize rotation so it's a multiple of 90 and between 0 and 270 // Normalize rotation so it's a multiple of 90 and between 0 and 270
if (rotate % 90 != 0) { if (rotate % 90 != 0) {
rotate = 0; rotate = 0;
@ -3056,7 +3056,7 @@ var Page = (function() {
stats.compile = stats.fonts = stats.render = 0; stats.compile = stats.fonts = stats.render = 0;
var gfx = new CanvasGraphics(canvasCtx); var gfx = new CanvasGraphics(canvasCtx);
var fonts = [ ]; var fonts = [];
this.compile(gfx, fonts); this.compile(gfx, fonts);
stats.compile = Date.now(); stats.compile = Date.now();
@ -3067,7 +3067,7 @@ var Page = (function() {
stats.fonts = Date.now(); stats.fonts = Date.now();
// Always defer call to display() to work around bug in // Always defer call to display() to work around bug in
// Firefox error reporting from XHR callbacks. // Firefox error reporting from XHR callbacks.
setTimeout(function () { setTimeout(function() {
var exc = null; var exc = null;
try { try {
self.display(gfx); self.display(gfx);
@ -3542,7 +3542,7 @@ var EvalState = (function() {
var PartialEvaluator = (function() { var PartialEvaluator = (function() {
function constructor() { function constructor() {
this.state = new EvalState(); this.state = new EvalState();
this.stateStack = [ ]; this.stateStack = [];
} }
var OP_MAP = { var OP_MAP = {
@ -3646,10 +3646,10 @@ var PartialEvaluator = (function() {
eval: function(stream, xref, resources, fonts) { eval: function(stream, xref, resources, fonts) {
resources = xref.fetchIfRef(resources) || new Dict(); resources = xref.fetchIfRef(resources) || new Dict();
var xobjs = xref.fetchIfRef(resources.get('XObject')) || new Dict(); var xobjs = xref.fetchIfRef(resources.get('XObject')) || new Dict();
var patterns = xref.fetchIfRef(resources.get("Pattern")) || new Dict(); var patterns = xref.fetchIfRef(resources.get('Pattern')) || new Dict();
var parser = new Parser(new Lexer(stream), false); var parser = new Parser(new Lexer(stream), false);
var args = [], argsArray = [], fnArray = [], obj; var args = [], argsArray = [], fnArray = [], obj;
while (!IsEOF(obj = parser.getObj())) { while (!IsEOF(obj = parser.getObj())) {
if (IsCmd(obj)) { if (IsCmd(obj)) {
var cmd = obj.cmd; var cmd = obj.cmd;
@ -3665,7 +3665,7 @@ var PartialEvaluator = (function() {
var pattern = xref.fetchIfRef(patterns.get(patternName.name)); var pattern = xref.fetchIfRef(patterns.get(patternName.name));
if (pattern) { if (pattern) {
var dict = IsStream(pattern) ? pattern.dict : pattern; var dict = IsStream(pattern) ? pattern.dict : pattern;
var typeNum = dict.get("PatternType"); var typeNum = dict.get('PatternType');
if (typeNum == 1) { if (typeNum == 1) {
patternName.code = this.eval(pattern, xref, patternName.code = this.eval(pattern, xref,
dict.get('Resources'), fonts); dict.get('Resources'), fonts);
@ -3718,7 +3718,7 @@ var PartialEvaluator = (function() {
} }
return function(gfx) { return function(gfx) {
for(var i = 0, length = argsArray.length; i < length; i++) for (var i = 0, length = argsArray.length; i < length; i++)
gfx[fnArray[i]].apply(gfx, argsArray[i]); gfx[fnArray[i]].apply(gfx, argsArray[i]);
} }
}, },
@ -3729,8 +3729,8 @@ var PartialEvaluator = (function() {
var subType = fontDict.get('Subtype'); var subType = fontDict.get('Subtype');
var compositeFont = false; var compositeFont = false;
assertWellFormed(IsName(subType), 'invalid font Subtype'); assertWellFormed(IsName(subType), 'invalid font Subtype');
// If font is a composite // If font is a composite
// - get the descendant font // - get the descendant font
// - set the type according to the descendant font // - set the type according to the descendant font
// - get the FontDescriptor from the descendant font // - get the FontDescriptor from the descendant font
@ -3750,10 +3750,10 @@ var PartialEvaluator = (function() {
} else { } else {
fd = fontDict.get('FontDescriptor'); fd = fontDict.get('FontDescriptor');
} }
if (!fd) if (!fd)
return null; return null;
var descriptor = xref.fetch(fd); var descriptor = xref.fetch(fd);
var fontName = xref.fetchIfRef(descriptor.get('FontName')); var fontName = xref.fetchIfRef(descriptor.get('FontName'));
@ -3773,7 +3773,7 @@ var PartialEvaluator = (function() {
var glyphsData = glyphsStream.getBytes(0); var glyphsData = glyphsStream.getBytes(0);
var i = 0; var i = 0;
// Glyph ids are big-endian 2-byte values // Glyph ids are big-endian 2-byte values
for (var j=0; j<glyphsData.length; j++) { for (var j = 0; j < glyphsData.length; j++) {
var glyphID = (glyphsData[j++] << 8) | glyphsData[j]; var glyphID = (glyphsData[j++] << 8) | glyphsData[j];
charset.push(glyphID); charset.push(glyphID);
} }
@ -3785,12 +3785,12 @@ var PartialEvaluator = (function() {
if (IsName(encoding)) { if (IsName(encoding)) {
// Encoding is a predefined CMap // Encoding is a predefined CMap
if (encoding.name == 'Identity-H') { if (encoding.name == 'Identity-H') {
TODO ('Need to create an identity cmap') TODO('Need to create an identity cmap');
} else { } else {
TODO ('Need to support predefined CMaps see PDF 32000-1:2008 9.7.5.2 Predefined CMaps') TODO('Need to support predefined CMaps see PDF 32000-1:2008 9.7.5.2 Predefined CMaps');
} }
} else { } else {
TODO ('Need to support encoding streams see PDF 32000-1:2008 9.7.5.3'); TODO('Need to support encoding streams see PDF 32000-1:2008 9.7.5.3');
} }
} }
} else if (fontDict.has('Encoding')) { } else if (fontDict.has('Encoding')) {
@ -3955,11 +3955,11 @@ var PartialEvaluator = (function() {
return { return {
name: fontName, name: fontName,
fontDict: fontDict, fontDict: fontDict,
file: fontFile, file: fontFile,
properties: properties properties: properties
}; };
}, }
}; };
return constructor; return constructor;
@ -4145,7 +4145,7 @@ var CanvasGraphics = (function() {
stroke: function() { stroke: function() {
var ctx = this.ctx; var ctx = this.ctx;
var strokeColor = this.current.strokeColor; var strokeColor = this.current.strokeColor;
if (strokeColor && strokeColor.type === "Pattern") { if (strokeColor && strokeColor.type === 'Pattern') {
// for patterns, we transform to pattern space, calculate // for patterns, we transform to pattern space, calculate
// the pattern, call stroke, and restore to user space // the pattern, call stroke, and restore to user space
ctx.save(); ctx.save();
@ -4166,7 +4166,7 @@ var CanvasGraphics = (function() {
var ctx = this.ctx; var ctx = this.ctx;
var fillColor = this.current.fillColor; var fillColor = this.current.fillColor;
if (fillColor && fillColor.type === "Pattern") { if (fillColor && fillColor.type === 'Pattern') {
ctx.save(); ctx.save();
ctx.fillStyle = fillColor.getPattern(ctx); ctx.fillStyle = fillColor.getPattern(ctx);
ctx.fill(); ctx.fill();
@ -4186,7 +4186,7 @@ var CanvasGraphics = (function() {
var ctx = this.ctx; var ctx = this.ctx;
var fillColor = this.current.fillColor; var fillColor = this.current.fillColor;
if (fillColor && fillColor.type === "Pattern") { if (fillColor && fillColor.type === 'Pattern') {
ctx.save(); ctx.save();
ctx.fillStyle = fillColor.getPattern(ctx); ctx.fillStyle = fillColor.getPattern(ctx);
ctx.fill(); ctx.fill();
@ -4194,9 +4194,9 @@ var CanvasGraphics = (function() {
} else { } else {
ctx.fill(); ctx.fill();
} }
var strokeColor = this.current.strokeColor; var strokeColor = this.current.strokeColor;
if (strokeColor && strokeColor.type === "Pattern") { if (strokeColor && strokeColor.type === 'Pattern') {
ctx.save(); ctx.save();
ctx.strokeStyle = strokeColor.getPattern(ctx); ctx.strokeStyle = strokeColor.getPattern(ctx);
ctx.stroke(); ctx.stroke();
@ -4204,7 +4204,7 @@ var CanvasGraphics = (function() {
} else { } else {
ctx.stroke(); ctx.stroke();
} }
this.consumePath(); this.consumePath();
}, },
eoFillStroke: function() { eoFillStroke: function() {
@ -4285,9 +4285,9 @@ var CanvasGraphics = (function() {
size = (size <= kRasterizerMin) ? size * kScalePrecision : size; size = (size <= kRasterizerMin) ? size * kScalePrecision : size;
var bold = fontObj.bold ? "bold" : "normal"; var bold = fontObj.bold ? 'bold' : 'normal';
var italic = fontObj.italic ? "italic" : "normal"; var italic = fontObj.italic ? 'italic' : 'normal';
var rule = bold + " " + italic + " " + size + 'px "' + name + '"'; var rule = bold + ' ' + italic + ' ' + size + 'px "' + name + '"';
this.ctx.font = rule; this.ctx.font = rule;
} }
}, },
@ -4329,7 +4329,7 @@ var CanvasGraphics = (function() {
ctx.save(); ctx.save();
ctx.transform.apply(ctx, current.textMatrix); ctx.transform.apply(ctx, current.textMatrix);
ctx.scale(1, -1); ctx.scale(1, -1);
ctx.translate(current.x, -1 * current.y); ctx.translate(current.x, -1 * current.y);
var scaleFactorX = 1, scaleFactorY = 1; var scaleFactorX = 1, scaleFactorY = 1;
@ -4405,11 +4405,11 @@ var CanvasGraphics = (function() {
// Color // Color
setStrokeColorSpace: function(space) { setStrokeColorSpace: function(space) {
this.current.strokeColorSpace = this.current.strokeColorSpace =
ColorSpace.parse(space, this.xref, this.res); ColorSpace.parse(space, this.xref, this.res);
}, },
setFillColorSpace: function(space) { setFillColorSpace: function(space) {
this.current.fillColorSpace = this.current.fillColorSpace =
ColorSpace.parse(space, this.xref, this.res); ColorSpace.parse(space, this.xref, this.res);
}, },
setStrokeColor: function(/*...*/) { setStrokeColor: function(/*...*/) {
@ -4509,7 +4509,7 @@ var CanvasGraphics = (function() {
var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
} else { } else {
// HACK to draw the gradient onto an infinite rectangle. // HACK to draw the gradient onto an infinite rectangle.
@ -4517,7 +4517,7 @@ var CanvasGraphics = (function() {
// Canvas only allows gradients to be drawn in a rectangle // Canvas only allows gradients to be drawn in a rectangle
// The following bug should allow us to remove this. // The following bug should allow us to remove this.
// https://bugzilla.mozilla.org/show_bug.cgi?id=664884 // https://bugzilla.mozilla.org/show_bug.cgi?id=664884
this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
} }
@ -4673,7 +4673,7 @@ var CanvasGraphics = (function() {
}, },
restoreFillRule: function(rule) { restoreFillRule: function(rule) {
this.ctx.mozFillRule = rule; this.ctx.mozFillRule = rule;
}, }
}; };
return constructor; return constructor;
@ -4695,7 +4695,7 @@ var Util = (function() {
var yt = p[0] * m[1] + p[1] * m[3] + m[5]; var yt = p[0] * m[1] + p[1] * m[3] + m[5];
return [xt, yt]; return [xt, yt];
}; };
return constructor; return constructor;
})(); })();
@ -4811,7 +4811,7 @@ var ColorSpace = (function() {
error("unimplemented color space object '" + mode + "'"); error("unimplemented color space object '" + mode + "'");
} }
} else { } else {
error('unrecognized color space object: "'+ cs +"'"); error('unrecognized color space object: "' + cs + "'");
} }
}; };
@ -4820,7 +4820,7 @@ var ColorSpace = (function() {
var SeparationCS = (function() { var SeparationCS = (function() {
function constructor(base, tintFn) { function constructor(base, tintFn) {
this.name = "Separation"; this.name = 'Separation';
this.numComps = 1; this.numComps = 1;
this.defaultColor = [1]; this.defaultColor = [1];
@ -4987,41 +4987,41 @@ var DeviceCmykCS = (function() {
r += 0.1373 * x; r += 0.1373 * x;
g += 0.1216 * x; g += 0.1216 * x;
b += 0.1255 * x; b += 0.1255 * x;
x = c1 * m1 * y * k1; // 0 0 1 0 x = c1 * m1 * y * k1; // 0 0 1 0
r += x; r += x;
g += 0.9490 * x; g += 0.9490 * x;
x = c1 * m1 * y * k; // 0 0 1 1 x = c1 * m1 * y * k; // 0 0 1 1
r += 0.1098 * x; r += 0.1098 * x;
g += 0.1020 * x; g += 0.1020 * x;
x = c1 * m * y1 * k1; // 0 1 0 0 x = c1 * m * y1 * k1; // 0 1 0 0
r += 0.9255 * x; r += 0.9255 * x;
b += 0.5490 * x; b += 0.5490 * x;
x = c1 * m * y1 * k; // 0 1 0 1 x = c1 * m * y1 * k; // 0 1 0 1
r += 0.1412 * x; r += 0.1412 * x;
x = c1 * m * y * k1; // 0 1 1 0 x = c1 * m * y * k1; // 0 1 1 0
r += 0.9294 * x; r += 0.9294 * x;
g += 0.1098 * x; g += 0.1098 * x;
b += 0.1412 * x; b += 0.1412 * x;
x = c1 * m * y * k; // 0 1 1 1 x = c1 * m * y * k; // 0 1 1 1
r += 0.1333 * x; r += 0.1333 * x;
x = c * m1 * y1 * k1; // 1 0 0 0 x = c * m1 * y1 * k1; // 1 0 0 0
g += 0.6784 * x; g += 0.6784 * x;
b += 0.9373 * x; b += 0.9373 * x;
x = c * m1 * y1 * k; // 1 0 0 1 x = c * m1 * y1 * k; // 1 0 0 1
g += 0.0588 * x; g += 0.0588 * x;
b += 0.1412 * x; b += 0.1412 * x;
x = c * m1 * y * k1; // 1 0 1 0 x = c * m1 * y * k1; // 1 0 1 0
g += 0.6510 * x; g += 0.6510 * x;
b += 0.3137 * x; b += 0.3137 * x;
x = c * m1 * y * k; // 1 0 1 1 x = c * m1 * y * k; // 1 0 1 1
g += 0.0745 * x; g += 0.0745 * x;
x = c * m * y1 * k1; // 1 1 0 0 x = c * m * y1 * k1; // 1 1 0 0
r += 0.1804 * x; r += 0.1804 * x;
g += 0.1922 * x; g += 0.1922 * x;
b += 0.5725 * x; b += 0.5725 * x;
x = c * m * y1 * k; // 1 1 0 1 x = c * m * y1 * k; // 1 1 0 1
b += 0.0078 * x; b += 0.0078 * x;
x = c * m * y * k1; // 1 1 1 0 x = c * m * y * k1; // 1 1 1 0
r += 0.2118 * x; r += 0.2118 * x;
g += 0.2119 * x; g += 0.2119 * x;
b += 0.2235 * x; b += 0.2235 * x;
@ -5037,7 +5037,7 @@ var DeviceCmykCS = (function() {
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
var cmyk = []; var cmyk = [];
for (var j = 0; j < 4; ++j) for (var j = 0; j < 4; ++j)
cmyk.push(colorBuf[colorBufPos++]/255); cmyk.push(colorBuf[colorBufPos++] / 255);
var rgb = this.getRgb(cmyk); var rgb = this.getRgb(cmyk);
for (var j = 0; j < 3; ++j) for (var j = 0; j < 3; ++j)
@ -5061,7 +5061,7 @@ var Pattern = (function() {
// Output: the appropriate fillStyle or strokeStyle // Output: the appropriate fillStyle or strokeStyle
getPattern: function pattern_getStyle(ctx) { getPattern: function pattern_getStyle(ctx) {
error('Should not call Pattern.getStyle'); error('Should not call Pattern.getStyle');
}, }
}; };
constructor.parse = function pattern_parse(args, cs, xref, res, ctx) { constructor.parse = function pattern_parse(args, cs, xref, res, ctx) {
@ -5069,17 +5069,17 @@ var Pattern = (function() {
var patternName = args[length - 1]; var patternName = args[length - 1];
if (!IsName(patternName)) if (!IsName(patternName))
error("Bad args to getPattern"); error('Bad args to getPattern');
var patternRes = xref.fetchIfRef(res.get("Pattern")); var patternRes = xref.fetchIfRef(res.get('Pattern'));
if (!patternRes) if (!patternRes)
error("Unable to find pattern resource"); error('Unable to find pattern resource');
var pattern = xref.fetchIfRef(patternRes.get(patternName.name)); var pattern = xref.fetchIfRef(patternRes.get(patternName.name));
var dict = IsStream(pattern) ? pattern.dict : pattern; var dict = IsStream(pattern) ? pattern.dict : pattern;
var typeNum = dict.get("PatternType"); var typeNum = dict.get('PatternType');
switch(typeNum) { switch (typeNum) {
case 1: case 1:
var base = cs.base; var base = cs.base;
var color; var color;
@ -5201,9 +5201,9 @@ var RadialAxialShading = (function() {
} else if (type == 3) { } else if (type == 3) {
var p0 = [coordsArr[0], coordsArr[1]]; var p0 = [coordsArr[0], coordsArr[1]];
var p1 = [coordsArr[3], coordsArr[4]]; var p1 = [coordsArr[3], coordsArr[4]];
var r0 = coordsArr[2], r1 = coordsArr[5] var r0 = coordsArr[2], r1 = coordsArr[5];
} else { } else {
error() error();
} }
var matrix = this.matrix; var matrix = this.matrix;
@ -5244,7 +5244,7 @@ var RadialAxialShading = (function() {
var TilingPattern = (function() { var TilingPattern = (function() {
var PAINT_TYPE_COLORED = 1, PAINT_TYPE_UNCOLORED = 2; var PAINT_TYPE_COLORED = 1, PAINT_TYPE_UNCOLORED = 2;
function constructor(pattern, code, dict, color, xref, ctx) { function constructor(pattern, code, dict, color, xref, ctx) {
function multiply(m, tm) { function multiply(m, tm) {
var a = m[0] * tm[0] + m[1] * tm[2]; var a = m[0] * tm[0] + m[1] * tm[2];
@ -5258,7 +5258,7 @@ var TilingPattern = (function() {
TODO('TilingType'); TODO('TilingType');
this.matrix = dict.get("Matrix"); this.matrix = dict.get('Matrix');
this.curMatrix = ctx.mozCurrentTransform; this.curMatrix = ctx.mozCurrentTransform;
this.invMatrix = ctx.mozCurrentTransformInverse; this.invMatrix = ctx.mozCurrentTransformInverse;
this.ctx = ctx; this.ctx = ctx;
@ -5272,14 +5272,14 @@ var TilingPattern = (function() {
var topLeft = [x0, y0]; var topLeft = [x0, y0];
// we want the canvas to be as large as the step size // we want the canvas to be as large as the step size
var botRight = [x0 + xstep, y0 + ystep] var botRight = [x0 + xstep, y0 + ystep];
var width = botRight[0] - topLeft[0]; var width = botRight[0] - topLeft[0];
var height = botRight[1] - topLeft[1]; var height = botRight[1] - topLeft[1];
// TODO: hack to avoid OOM, we would idealy compute the tiling // TODO: hack to avoid OOM, we would idealy compute the tiling
// pattern to be only as large as the acual size in device space // pattern to be only as large as the acual size in device space
// This could be computed with .mozCurrentTransform, but still // This could be computed with .mozCurrentTransform, but still
// needs to be implemented // needs to be implemented
while (Math.abs(width) > 512 || Math.abs(height) > 512) { while (Math.abs(width) > 512 || Math.abs(height) > 512) {
width = 512; width = 512;
@ -5676,7 +5676,7 @@ var PDFFunction = (function() {
var c0 = dict.get('C0') || [0]; var c0 = dict.get('C0') || [0];
var c1 = dict.get('C1') || [1]; var c1 = dict.get('C1') || [1];
var n = dict.get('N'); var n = dict.get('N');
if (!IsArray(c0) || !IsArray(c1)) if (!IsArray(c0) || !IsArray(c1))
error('Illegal dictionary for interpolated function'); error('Illegal dictionary for interpolated function');
@ -5685,7 +5685,7 @@ var PDFFunction = (function() {
for (var i = 0; i < length; ++i) for (var i = 0; i < length; ++i)
diff.push(c1[i] - c0[i]); diff.push(c1[i] - c0[i]);
this.func = function (args) { this.func = function(args) {
var x = args[0]; var x = args[0];
var out = []; var out = [];
@ -5697,11 +5697,11 @@ var PDFFunction = (function() {
}, },
constructStiched: function() { constructStiched: function() {
TODO('unhandled type of function'); TODO('unhandled type of function');
this.func = function () { return [ 255, 105, 180 ]; } this.func = function() { return [255, 105, 180]; }
}, },
constructPostScript: function() { constructPostScript: function() {
TODO('unhandled type of function'); TODO('unhandled type of function');
this.func = function () { return [ 255, 105, 180 ]; } this.func = function() { return [255, 105, 180]; }
} }
}; };

View File

@ -41,15 +41,15 @@ var PDFView = {
set page(val) { set page(val) {
var pages = this.pages; var pages = this.pages;
var input = document.getElementById("pageNumber"); var input = document.getElementById('pageNumber');
if (val <= 0 || val > pages.length) { if (val <= 0 || val > pages.length) {
input.value = this.page; input.value = this.page;
return; return;
} }
document.location.hash = val; document.location.hash = val;
document.getElementById("previous").disabled = (val == 1); document.getElementById('previous').disabled = (val == 1);
document.getElementById("next").disabled = (val == pages.length); document.getElementById('next').disabled = (val == pages.length);
if (input.value == val) if (input.value == val)
return; return;
@ -62,7 +62,7 @@ var PDFView = {
}, },
open: function(url, scale) { open: function(url, scale) {
if (url.indexOf("http") == 0) if (url.indexOf('http') == 0)
return; return;
document.title = url; document.title = url;
@ -106,7 +106,7 @@ var PDFView = {
var page = pdf.getPage(i); var page = pdf.getPage(i);
pages.push(new PageView(container, page, i, page.width, page.height, page.stats)); pages.push(new PageView(container, page, i, page.width, page.height, page.stats));
thumbnails.push(new ThumbnailView(sidebar, pages[i - 1])); thumbnails.push(new ThumbnailView(sidebar, pages[i - 1]));
}; }
this.scale = (scale || kDefaultScale); this.scale = (scale || kDefaultScale);
this.page = parseInt(document.location.hash.substring(1)) || 1; this.page = parseInt(document.location.hash.substring(1)) || 1;
@ -136,7 +136,7 @@ var PDFView = {
} }
return visiblePages; return visiblePages;
}, }
}; };
var PageView = function(container, content, id, width, height, stats) { var PageView = function(container, content, id, width, height, stats) {
@ -157,7 +157,7 @@ var PageView = function(container, content, id, width, height, stats) {
this.update = function(scale) { this.update = function(scale) {
this.scale = scale || this.scale; this.scale = scale || this.scale;
div.style.width = (this.width * this.scale)+ 'px'; div.style.width = (this.width * this.scale) + 'px';
div.style.height = (this.height * this.scale) + 'px'; div.style.height = (this.height * this.scale) + 'px';
while (div.hasChildNodes()) while (div.hasChildNodes())
@ -192,7 +192,7 @@ var PageView = function(container, content, id, width, height, stats) {
this.updateStats = function() { this.updateStats = function() {
var t1 = stats.compile, t2 = stats.fonts, t3 = stats.render; var t1 = stats.compile, t2 = stats.fonts, t3 = stats.render;
var str = 'Time to compile/fonts/render: ' + var str = 'Time to compile/fonts/render: ' +
(t1 - stats.begin) + '/' + (t2 - t1) + '/' + (t3 - t2) + ' ms'; (t1 - stats.begin) + '/' + (t2 - t1) + '/' + (t3 - t2) + ' ms';
document.getElementById('info').innerHTML = str; document.getElementById('info').innerHTML = str;
}; };
@ -270,11 +270,11 @@ window.addEventListener('scroll', function(evt) {
PDFView.page = firstPage.id; PDFView.page = firstPage.id;
}, true); }, true);
window.addEventListener("hashchange", function(evt) { window.addEventListener('hashchange', function(evt) {
PDFView.page = PDFView.page; PDFView.page = PDFView.page;
}); });
window.addEventListener("change", function(evt) { window.addEventListener('change', function(evt) {
var files = evt.target.files; var files = evt.target.files;
if (!files || files.length == 0) if (!files || files.length == 0)
return; return;
@ -300,7 +300,7 @@ window.addEventListener("change", function(evt) {
document.location.hash = 1; document.location.hash = 1;
}, true); }, true);
window.addEventListener("transitionend", function(evt) { window.addEventListener('transitionend', function(evt) {
var pageIndex = 0; var pageIndex = 0;
var pagesCount = PDFView.pages.length; var pagesCount = PDFView.pages.length;
@ -308,7 +308,7 @@ window.addEventListener("transitionend", function(evt) {
container._interval = window.setInterval(function() { container._interval = window.setInterval(function() {
if (pageIndex >= pagesCount) if (pageIndex >= pagesCount)
return window.clearInterval(container._interval); return window.clearInterval(container._interval);
PDFView.thumbnails[pageIndex++].draw(); PDFView.thumbnails[pageIndex++].draw();
}, 500); }, 500);
}, true); }, true);