diff --git a/bower.json b/bower.json index b8a7e95a7..926e40204 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "pdfjs-dist", - "version": "1.5.421", + "version": "1.5.424", "main": [ "build/pdf.js", "build/pdf.worker.js" diff --git a/build/pdf.combined.js b/build/pdf.combined.js index 18830e811..d7f7ad5e4 100644 --- a/build/pdf.combined.js +++ b/build/pdf.combined.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfCombined = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.5.421'; -var pdfjsBuild = '31f6180'; +var pdfjsVersion = '1.5.424'; +var pdfjsBuild = 'd03651e'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? @@ -1395,6 +1395,10 @@ var JpegImage = (function jpegImage() { var p0, p1, p2, p3, p4, p5, p6, p7; var t; + if (!qt) { + throw 'missing required Quantization Table.'; + } + // inverse DCT on rows for (var row = 0; row < 64; row += 8) { // gather block data @@ -1746,7 +1750,8 @@ var JpegImage = (function jpegImage() { l = frame.components.push({ h: h, v: v, - quantizationTable: quantizationTables[qId] + quantizationId: qId, + quantizationTable: null, // See comment below. }); frame.componentIds[componentId] = l - 1; offset += 3; @@ -1830,6 +1835,15 @@ var JpegImage = (function jpegImage() { this.components = []; for (i = 0; i < frame.components.length; i++) { component = frame.components[i]; + + // Prevent errors when DQT markers are placed after SOF{n} markers, + // by assigning the `quantizationTable` entry after the entire image + // has been parsed (fixes issue7406.pdf). + var quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + this.components.push({ output: buildComponentData(frame, component), scaleX: component.h / frame.maxH, diff --git a/build/pdf.js b/build/pdf.js index 0ff085343..9458e768d 100644 --- a/build/pdf.js +++ b/build/pdf.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdf = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.5.421'; -var pdfjsBuild = '31f6180'; +var pdfjsVersion = '1.5.424'; +var pdfjsBuild = 'd03651e'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? diff --git a/build/pdf.worker.js b/build/pdf.worker.js index 365f801fb..13280dcea 100644 --- a/build/pdf.worker.js +++ b/build/pdf.worker.js @@ -28,8 +28,8 @@ factory((root.pdfjsDistBuildPdfWorker = {})); // Use strict in our context only - users might not want it 'use strict'; -var pdfjsVersion = '1.5.421'; -var pdfjsBuild = '31f6180'; +var pdfjsVersion = '1.5.424'; +var pdfjsBuild = 'd03651e'; var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? @@ -1395,6 +1395,10 @@ var JpegImage = (function jpegImage() { var p0, p1, p2, p3, p4, p5, p6, p7; var t; + if (!qt) { + throw 'missing required Quantization Table.'; + } + // inverse DCT on rows for (var row = 0; row < 64; row += 8) { // gather block data @@ -1746,7 +1750,8 @@ var JpegImage = (function jpegImage() { l = frame.components.push({ h: h, v: v, - quantizationTable: quantizationTables[qId] + quantizationId: qId, + quantizationTable: null, // See comment below. }); frame.componentIds[componentId] = l - 1; offset += 3; @@ -1830,6 +1835,15 @@ var JpegImage = (function jpegImage() { this.components = []; for (i = 0; i < frame.components.length; i++) { component = frame.components[i]; + + // Prevent errors when DQT markers are placed after SOF{n} markers, + // by assigning the `quantizationTable` entry after the entire image + // has been parsed (fixes issue7406.pdf). + var quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + this.components.push({ output: buildComponentData(frame, component), scaleX: component.h / frame.maxH, diff --git a/package.json b/package.json index 5c19b3612..5043d265d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pdfjs-dist", - "version": "1.5.421", + "version": "1.5.424", "main": "build/pdf.js", "description": "Generic build of Mozilla's PDF.js library.", "keywords": [