Merge remote-tracking branch 'upstream/master'
This commit is contained in:
		
						commit
						b424ab6df4
					
				| @ -1,3 +1,7 @@ | ||||
| /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | ||||
| /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| var ISOAdobeCharset = [ | ||||
|   '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', | ||||
|  | ||||
| @ -131,8 +131,7 @@ pdfContentHandler.prototype = { | ||||
|       throw Cr.NS_ERROR_WONT_HANDLE_CONTENT; | ||||
| 
 | ||||
|     let window = null; | ||||
|     let callbacks = aRequest.notificationCallbacks ? | ||||
|                     aRequest.notificationCallbacks : | ||||
|     let callbacks = aRequest.notificationCallbacks || | ||||
|                     aRequest.loadGroup.notificationCallbacks; | ||||
|     if (!callbacks) | ||||
|       return; | ||||
|  | ||||
							
								
								
									
										14
									
								
								fonts.js
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								fonts.js
									
									
									
									
									
								
							| @ -710,7 +710,13 @@ var Font = (function Font() { | ||||
|   }; | ||||
| 
 | ||||
|   function createOS2Table(properties, override) { | ||||
|     var override = override || {}; | ||||
|     override = override || { | ||||
|       unitsPerEm: 0, | ||||
|       yMax: 0, | ||||
|       yMin: 0, | ||||
|       ascent: 0, | ||||
|       descent: 0 | ||||
|     }; | ||||
| 
 | ||||
|     var ulUnicodeRange1 = 0; | ||||
|     var ulUnicodeRange2 = 0; | ||||
| @ -1322,7 +1328,8 @@ var Font = (function Font() { | ||||
|         'OS/2': stringToArray(createOS2Table(properties)), | ||||
| 
 | ||||
|         // Character to glyphs mapping
 | ||||
|         'cmap': createCMapTable(charstrings.slice(), font.glyphIds), | ||||
|         'cmap': createCMapTable(charstrings.slice(), | ||||
|                                 ('glyphIds' in font) ? font.glyphIds: null), | ||||
| 
 | ||||
|         // Font header
 | ||||
|         'head': (function fontFieldsHead() { | ||||
| @ -2612,7 +2619,8 @@ var Type2CFF = (function type2CFF() { | ||||
|         if (unicode <= 0x1f || (unicode >= 127 && unicode <= 255)) | ||||
|           unicode += kCmapGlyphOffset; | ||||
| 
 | ||||
|         var width = isNum(mapping.width) ? mapping.width : defaultWidth; | ||||
|         var width = ('width' in mapping) && isNum(mapping.width) ? mapping.width | ||||
|                                                                  : defaultWidth; | ||||
|         properties.encoding[code] = { | ||||
|           unicode: unicode, | ||||
|           width: width | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | ||||
| /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| var Metrics = { | ||||
|   'Courier': 600, | ||||
|   'Courier-Bold': 600, | ||||
|  | ||||
							
								
								
									
										120
									
								
								pdf.js
									
									
									
									
									
								
							
							
						
						
									
										120
									
								
								pdf.js
									
									
									
									
									
								
							| @ -2021,6 +2021,25 @@ var CCITTFaxStream = (function ccittFaxStream() { | ||||
|     return EOF; | ||||
|   }; | ||||
| 
 | ||||
|   var findTableCode = function ccittFaxStreamFindTableCode(start, end, table, | ||||
|                                                            limit) { | ||||
|     for (var i = start; i <= end; ++i) { | ||||
|       var code = this.lookBits(i); | ||||
|       if (code == EOF) | ||||
|         return [true, 1]; | ||||
|       if (i < end) | ||||
|         code <<= end - i; | ||||
|       if (code >= limit) { | ||||
|         var p = table[code - ((limit == ccittEOL) ? 0 : limit)]; | ||||
|         if (p[0] == i) { | ||||
|           this.eatBits(i); | ||||
|           return [true, p[1]]; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     return [false, 0]; | ||||
|   }; | ||||
| 
 | ||||
|   constructor.prototype.getWhiteCode = function ccittFaxStreamGetWhiteCode() { | ||||
|     var code = 0; | ||||
|     var p; | ||||
| @ -2040,31 +2059,13 @@ var CCITTFaxStream = (function ccittFaxStream() { | ||||
|         return p[1]; | ||||
|       } | ||||
|     } else { | ||||
|       for (var n = 1; n <= 9; ++n) { | ||||
|         code = this.lookBits(n); | ||||
|         if (code == EOF) | ||||
|           return 1; | ||||
|       var result = findTableCode(1, 9, whiteTable2, ccittEOL); | ||||
|       if (result[0]) | ||||
|         return result[1]; | ||||
| 
 | ||||
|         if (n < 9) | ||||
|           code <<= 9 - n; | ||||
|         p = whiteTable2[code]; | ||||
|         if (p[0] == n) { | ||||
|           this.eatBits(n); | ||||
|           return p[0]; | ||||
|         } | ||||
|       } | ||||
|       for (var n = 11; n <= 12; ++n) { | ||||
|         code = this.lookBits(n); | ||||
|         if (code == EOF) | ||||
|           return 1; | ||||
|         if (n < 12) | ||||
|           code <<= 12 - n; | ||||
|         p = whiteTable1[code]; | ||||
|         if (p[0] == n) { | ||||
|           this.eatBits(n); | ||||
|           return p[1]; | ||||
|         } | ||||
|       } | ||||
|       result = findTableCode(11, 12, whiteTable1, ccittEOL); | ||||
|       if (result[0]) | ||||
|         return result[1]; | ||||
|     } | ||||
|     warn('bad white code'); | ||||
|     this.eatBits(1); | ||||
| @ -2089,45 +2090,17 @@ var CCITTFaxStream = (function ccittFaxStream() { | ||||
|         return p[1]; | ||||
|       } | ||||
|     } else { | ||||
|       var n; | ||||
|       for (n = 2; n <= 6; ++n) { | ||||
|         code = this.lookBits(n); | ||||
|         if (code == EOF) | ||||
|           return 1; | ||||
|         if (n < 6) | ||||
|           code <<= 6 - n; | ||||
|         p = blackTable3[code]; | ||||
|         if (p[0] == n) { | ||||
|           this.eatBits(n); | ||||
|           return p[1]; | ||||
|         } | ||||
|       } | ||||
|       for (n = 7; n <= 12; ++n) { | ||||
|         code = this.lookBits(n); | ||||
|         if (code == EOF) | ||||
|           return 1; | ||||
|         if (n < 12) | ||||
|           code <<= 12 - n; | ||||
|         if (code >= 64) { | ||||
|           p = blackTable2[code - 64]; | ||||
|           if (p[0] == n) { | ||||
|             this.eatBits(n); | ||||
|             return p[1]; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|       for (n = 10; n <= 13; ++n) { | ||||
|         code = this.lookBits(n); | ||||
|         if (code == EOF) | ||||
|           return 1; | ||||
|         if (n < 13) | ||||
|           code <<= 13 - n; | ||||
|         p = blackTable1[code]; | ||||
|         if (p[0] == n) { | ||||
|           this.eatBits(n); | ||||
|           return p[1]; | ||||
|         } | ||||
|       } | ||||
|       var result = findTableCode(2, 6, blackTable3, ccittEOL); | ||||
|       if (result[0]) | ||||
|         return result[1]; | ||||
| 
 | ||||
|       result = findTableCode(7, 12, blackTable2, 64); | ||||
|       if (result[0]) | ||||
|         return result[1]; | ||||
| 
 | ||||
|       result = findTableCode(10, 13, blackTable1, ccittEOL); | ||||
|       if (result[0]) | ||||
|         return result[1]; | ||||
|     } | ||||
|     warn('bad black code'); | ||||
|     this.eatBits(1); | ||||
| @ -4381,6 +4354,10 @@ var PartialEvaluator = (function partialEvaluator() { | ||||
|       var patterns = xref.fetchIfRef(resources.get('Pattern')) || new Dict(); | ||||
|       var parser = new Parser(new Lexer(stream), false); | ||||
|       var args = [], argsArray = [], fnArray = [], obj; | ||||
|       var getObjBt = function getObjBt() { | ||||
|         parser = this.oldParser; | ||||
|         return { name: 'BT' }; | ||||
|       }; | ||||
| 
 | ||||
|       while (!isEOF(obj = parser.getObj())) { | ||||
|         if (isCmd(obj)) { | ||||
| @ -4392,10 +4369,7 @@ var PartialEvaluator = (function partialEvaluator() { | ||||
|               fn = OP_MAP[cmd.substr(0, cmd.length - 2)]; | ||||
|               // feeding 'BT' on next interation
 | ||||
|               parser = { | ||||
|                 getObj: function() { | ||||
|                   parser = this.oldParser; | ||||
|                   return { name: 'BT' }; | ||||
|                 }, | ||||
|                 getObj: getObjBt, | ||||
|                 oldParser: parser | ||||
|               }; | ||||
|             } | ||||
| @ -5162,7 +5136,8 @@ var CanvasGraphics = (function canvasGraphics() { | ||||
|     stroke: function canvasGraphicsStroke() { | ||||
|       var ctx = this.ctx; | ||||
|       var strokeColor = this.current.strokeColor; | ||||
|       if (strokeColor && strokeColor.type === 'Pattern') { | ||||
|       if (strokeColor && strokeColor.hasOwnProperty('type') && | ||||
|           strokeColor.type === 'Pattern') { | ||||
|         // for patterns, we transform to pattern space, calculate
 | ||||
|         // the pattern, call stroke, and restore to user space
 | ||||
|         ctx.save(); | ||||
| @ -5183,7 +5158,8 @@ var CanvasGraphics = (function canvasGraphics() { | ||||
|       var ctx = this.ctx; | ||||
|       var fillColor = this.current.fillColor; | ||||
| 
 | ||||
|       if (fillColor && fillColor.type === 'Pattern') { | ||||
|       if (fillColor && fillColor.hasOwnProperty('type') && | ||||
|           fillColor.type === 'Pattern') { | ||||
|         ctx.save(); | ||||
|         ctx.fillStyle = fillColor.getPattern(ctx); | ||||
|         ctx.fill(); | ||||
| @ -5203,7 +5179,8 @@ var CanvasGraphics = (function canvasGraphics() { | ||||
|       var ctx = this.ctx; | ||||
| 
 | ||||
|       var fillColor = this.current.fillColor; | ||||
|       if (fillColor && fillColor.type === 'Pattern') { | ||||
|       if (fillColor && fillColor.hasOwnProperty('type') && | ||||
|           fillColor.type === 'Pattern') { | ||||
|         ctx.save(); | ||||
|         ctx.fillStyle = fillColor.getPattern(ctx); | ||||
|         ctx.fill(); | ||||
| @ -5213,7 +5190,8 @@ var CanvasGraphics = (function canvasGraphics() { | ||||
|       } | ||||
| 
 | ||||
|       var strokeColor = this.current.strokeColor; | ||||
|       if (strokeColor && strokeColor.type === 'Pattern') { | ||||
|       if (strokeColor && strokeColor.hasOwnProperty('type') && | ||||
|           strokeColor.type === 'Pattern') { | ||||
|         ctx.save(); | ||||
|         ctx.strokeStyle = strokeColor.getPattern(ctx); | ||||
|         ctx.stroke(); | ||||
|  | ||||
| @ -163,7 +163,7 @@ | ||||
| 
 | ||||
| // IE9 text/html data URI
 | ||||
| (function checkDocumentDocumentModeCompatibility() { | ||||
|   if (document.documentMode !== 9) | ||||
|   if (!('documentMode' in document) || document.documentMode !== 9) | ||||
|     return; | ||||
|   // overriding the src property
 | ||||
|   var originalSrcDescriptor = Object.getOwnPropertyDescriptor( | ||||
|  | ||||
| @ -17,12 +17,12 @@ | ||||
| 
 | ||||
|   <body> | ||||
|     <div id="controls"> | ||||
|       <button id="previous" onclick="PDFView.page--;"> | ||||
|       <button id="previous" onclick="PDFView.page--;" oncontextmenu="return false;"> | ||||
|         <img src="images/go-up.svg" align="top" height="32"/> | ||||
|         Previous | ||||
|       </button> | ||||
| 
 | ||||
|       <button id="next" onclick="PDFView.page++;"> | ||||
|       <button id="next" onclick="PDFView.page++;" oncontextmenu="return false;"> | ||||
|         <img src="images/go-down.svg" align="top" height="32"/> | ||||
|         Next | ||||
|       </button> | ||||
| @ -36,16 +36,16 @@ | ||||
| 
 | ||||
|       <div class="separator"></div> | ||||
| 
 | ||||
|       <button id="next" title="Zoom Out" onclick="PDFView.zoomOut();"> | ||||
|       <button id="zoomOut" title="Zoom Out" onclick="PDFView.zoomOut();" oncontextmenu="return false;"> | ||||
|         <img src="images/zoom-out.svg" align="top" height="32"/> | ||||
|       </button> | ||||
|       <button id="next" title="Zoom In" onclick="PDFView.zoomIn();"> | ||||
|       <button id="zoomIn" title="Zoom In" onclick="PDFView.zoomIn();" oncontextmenu="return false;"> | ||||
|         <img src="images/zoom-in.svg" align="top" height="32"/> | ||||
|       </button> | ||||
| 
 | ||||
|       <div class="separator"></div> | ||||
| 
 | ||||
|       <select id="scaleSelect" onchange="PDFView.parseScale(this.value);"> | ||||
|       <select id="scaleSelect" onchange="PDFView.parseScale(this.value);" oncontextmenu="return false;"> | ||||
|         <option id="customScaleOption" value="custom"></option> | ||||
|         <option value="0.5">50%</option> | ||||
|         <option value="0.75">75%</option> | ||||
| @ -59,14 +59,14 @@ | ||||
| 
 | ||||
|       <div class="separator"></div> | ||||
| 
 | ||||
|       <button id="print" onclick="window.print();"> | ||||
|       <button id="print" onclick="window.print();" oncontextmenu="return false;"> | ||||
|         <img src="images/document-print.svg" align="top" height="32"/> | ||||
|         Print | ||||
|       </button> | ||||
| 
 | ||||
|       <div class="separator"></div> | ||||
| 
 | ||||
|       <input id="fileInput" type="file"/> | ||||
|       <input id="fileInput" type="file" oncontextmenu="return false;"/> | ||||
| 
 | ||||
|       <div class="separator"></div> | ||||
| 
 | ||||
|  | ||||
| @ -178,6 +178,8 @@ var PDFView = { | ||||
| 
 | ||||
|     while (sidebar.hasChildNodes()) | ||||
|       sidebar.removeChild(sidebar.lastChild); | ||||
| 
 | ||||
|     if ('_loadingInterval' in sidebar) | ||||
|       clearInterval(sidebar._loadingInterval); | ||||
| 
 | ||||
|     var container = document.getElementById('viewer'); | ||||
| @ -544,7 +546,8 @@ window.addEventListener('load', function webViewerLoad(evt) { | ||||
|     params[unescape(param[0])] = unescape(param[1]); | ||||
|   } | ||||
| 
 | ||||
|   PDFView.open(params.file || kDefaultURL, parseFloat(params.scale)); | ||||
|   var scale = ('scale' in params) ? params.scale : kDefaultScale; | ||||
|   PDFView.open(params.file || kDefaultURL, parseFloat(scale)); | ||||
| 
 | ||||
|   if (!window.File || !window.FileReader || !window.FileList || !window.Blob) | ||||
|     document.getElementById('fileInput').style.display = 'none'; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user