Ensure that Mesh /Shadings have non-zero width/height (issue 17848)

This commit is contained in:
Jonas Jenwald 2024-03-29 22:36:02 +01:00
parent 55db43966e
commit 07a8836ab2
5 changed files with 51 additions and 14 deletions

View file

@ -956,13 +956,20 @@ class MeshShading extends BaseShading {
}
getIR() {
const { bounds } = this;
// Ensure that the shading has non-zero width and height, to prevent errors
// in `pattern_helper.js` (fixes issue17848.pdf).
if (bounds[2] - bounds[0] === 0 || bounds[3] - bounds[1] === 0) {
throw new FormatError(`Invalid MeshShading bounds: [${bounds}].`);
}
return [
"Mesh",
this.shadingType,
this.coords,
this.colors,
this.figures,
this.bounds,
bounds,
this.bbox,
this.background,
];