Don't double apply a group xobject's bbox.

In `beginGroup` we create a new canvas that is the size of the
bounding box and we translate it to the offset. This means we don't need to
also apply the bounding box during `paintFormXObjectBegin`.

This improves #6961 quite a bit, but it still is missing the indention
in the ruler.
This commit is contained in:
Brendan Dahl 2021-11-05 14:50:48 -07:00
parent 30bd5f0a39
commit 8161d3f29d
2 changed files with 6 additions and 2 deletions

View File

@ -527,7 +527,11 @@ class PartialEvaluator {
operatorList.addOp(OPS.beginGroup, [groupOptions]);
}
operatorList.addOp(OPS.paintFormXObjectBegin, [matrix, bbox]);
// If it's a group, a new canvas will be created that is the size of the
// bounding box and translated to the correct position so we don't need to
// apply the bounding box to it.
const args = group ? [matrix, null] : [matrix, bbox];
operatorList.addOp(OPS.paintFormXObjectBegin, args);
return this.getOperatorList({
stream: xobj,

View File

@ -5922,7 +5922,7 @@
"link": false,
"rounds": 1,
"lastPage": 1,
"type": "load"
"type": "eq"
},
{ "id": "zero_descent",
"file": "pdfs/zero_descent.pdf",