Browse Source

Prevent `PartialEvaluator_buildFormXObject` from failing if the `Matrix` or `BBox` contains indirect objects

This patch fixes yet another instance of bad PDF data, specifically a case where the `BBox` array contains indirect objects (i.e. `Ref`s).

Fixes the missing image in http://www.int.washington.edu/talks/WorkShops/int_08_37W/People/Franz_M/Franz.pdf#page=24. *Note:* There are missing images on a number of the pages in that file.
Jonas Jenwald 10 years ago
parent
commit
1b8cb52555
  1. 4
      src/core/evaluator.js
  2. 1
      test/pdfs/.gitignore
  3. BIN
      test/pdfs/franz_2.pdf
  4. 8
      test/test_manifest.json

4
src/core/evaluator.js

@ -126,8 +126,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { @@ -126,8 +126,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
xobj, smask,
operatorList,
initialState) {
var matrix = xobj.dict.get('Matrix');
var bbox = xobj.dict.get('BBox');
var matrix = xobj.dict.getArray('Matrix');
var bbox = xobj.dict.getArray('BBox');
var group = xobj.dict.get('Group');
if (group) {
var groupOptions = {

1
test/pdfs/.gitignore vendored

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
!tracemonkey.pdf
!franz.pdf
!franz_2.pdf
!issue2391-1.pdf
!issue2391-2.pdf
!issue5801.pdf

BIN
test/pdfs/franz_2.pdf

Binary file not shown.

8
test/test_manifest.json

@ -527,6 +527,14 @@ @@ -527,6 +527,14 @@
"type": "eq",
"about": "Type1 font with |Ref|s in the Differences array of the Encoding dictionary."
},
{ "id": "franz_2",
"file": "pdfs/franz_2.pdf",
"md5": "9d301ed8816e879891115b5cc3c39559",
"link": false,
"rounds": 1,
"type": "eq",
"about": "XObject with BBox array containing indirect object."
},
{ "id": "issue4934",
"file": "pdfs/issue4934.pdf",
"md5": "6099da44f677702ae65a648b51a2226d",

Loading…
Cancel
Save