diff --git a/pdf.js b/pdf.js index d1d2db4d7..afeea45f0 100644 --- a/pdf.js +++ b/pdf.js @@ -4377,6 +4377,20 @@ var PartialEvaluator = (function partialEvaluator() { if (isCmd(obj)) { var cmd = obj.cmd; var fn = OP_MAP[cmd]; + if (!fn) { + // invalid content command, trying to recover + if (cmd.substr(-2) == 'BT') { + fn = OP_MAP[cmd.substr(0, cmd.length - 2)]; + // feeding 'BT' on next interation + parser = { + getObj: function() { + parser = this.oldParser; + return { name: 'BT' }; + }, + oldParser: parser + }; + } + } assertWellFormed(fn, "Unknown command '" + cmd + "'"); // TODO figure out how to type-check vararg functions diff --git a/test/pdfs/vesta.pdf.link b/test/pdfs/vesta.pdf.link new file mode 100644 index 000000000..7aa348dff --- /dev/null +++ b/test/pdfs/vesta.pdf.link @@ -0,0 +1 @@ +http://www-csag.ucsd.edu/~jburke/Vesta/Vesta_Overview.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index d4936154c..f074c06c3 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -169,6 +169,12 @@ "rounds": 1, "type": "load" }, + { "id": "vesta-bad", + "file": "pdfs/vesta.pdf", + "link": true, + "rounds": 1, + "type": "load" + }, { "id": "ibwa-bad", "file": "pdfs/ibwa-bad.pdf", "link": true,