mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Fixes incomplete restore in paintFormXObject
This commit is contained in:
parent
d2c1868497
commit
4c533d065d
4 changed files with 15 additions and 1 deletions
|
@ -187,6 +187,7 @@ var CanvasExtraState = (function CanvasExtraStateClosure() {
|
|||
this.fillAlpha = 1;
|
||||
this.strokeAlpha = 1;
|
||||
this.lineWidth = 1;
|
||||
this.paintFormXObjectDepth = 0;
|
||||
|
||||
this.old = old;
|
||||
}
|
||||
|
@ -1102,6 +1103,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
|
|||
paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix,
|
||||
bbox) {
|
||||
this.save();
|
||||
this.current.paintFormXObjectDepth++;
|
||||
|
||||
if (matrix && isArray(matrix) && 6 == matrix.length)
|
||||
this.transform.apply(this, matrix);
|
||||
|
@ -1116,7 +1118,12 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
|
|||
},
|
||||
|
||||
paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
|
||||
this.restore();
|
||||
var depth = this.current.paintFormXObjectDepth;
|
||||
do {
|
||||
this.restore();
|
||||
// some pdf don't close all restores inside object
|
||||
// closing those for them
|
||||
} while (this.current.paintFormXObjectDepth >= depth);
|
||||
},
|
||||
|
||||
paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue