diff --git a/src/display/canvas.js b/src/display/canvas.js index ba52eaf9f..0c5ca513f 100644 --- a/src/display/canvas.js +++ b/src/display/canvas.js @@ -1507,10 +1507,11 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { group.bbox, currentCtx.mozCurrentTransform); // Clip the bounding box to the current canvas. - bounds = Util.intersect(bounds, [0, - 0, - currentCtx.canvas.width, - currentCtx.canvas.height]); + var canvasBounds = [0, + 0, + currentCtx.canvas.width, + currentCtx.canvas.height]; + bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; // Use ceil in case we're between sizes so we don't create canvas that is // too small and make the canvas at least 1x1 pixels. var drawnWidth = Math.max(Math.ceil(bounds[2] - bounds[0]), 1); diff --git a/test/pdfs/issue3879.pdf.link b/test/pdfs/issue3879.pdf.link new file mode 100644 index 000000000..c74b6f4bd --- /dev/null +++ b/test/pdfs/issue3879.pdf.link @@ -0,0 +1 @@ +http://particuliers.lcl.fr/quotidien/cartes/simplifier_quotidien/carte-visa-cleo/Ressources/pdf/dispositions_generales_cb_cleo.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index f6d672911..4e9d7505f 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -33,6 +33,15 @@ "type": "load", "about": "PDF with undefined stream length." }, + { "id": "issue3879", + "file": "pdfs/issue3879.pdf", + "md5": "1cd1f1c3271515a14e65ff2980e14663", + "rounds": 1, + "link": true, + "firstPage": 2, + "lastPage": 2, + "type": "eq" + }, { "id": "issue2833", "file": "pdfs/issue2833.pdf", "md5": "7bc6e17c41586155c188d7408bcb9ab5",