diff --git a/src/core/annotation.js b/src/core/annotation.js index a506ccf1c..14bbc392a 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -1699,10 +1699,7 @@ class MarkupAnnotation extends Annotation { fillAlpha, pointsCallback, }) { - let minX = Number.MAX_VALUE; - let minY = Number.MAX_VALUE; - let maxX = Number.MIN_VALUE; - let maxY = Number.MIN_VALUE; + const bbox = (this.data.rect = [Infinity, Infinity, -Infinity, -Infinity]); const buffer = ["q"]; if (extra) { @@ -1732,14 +1729,8 @@ class MarkupAnnotation extends Annotation { ]); for (let i = 0, ii = pointsArray.length; i < ii; i += 8) { - const [mX, MX, mY, MY] = pointsCallback( - buffer, - pointsArray.subarray(i, i + 8) - ); - minX = Math.min(minX, mX); - maxX = Math.max(maxX, MX); - minY = Math.min(minY, mY); - maxY = Math.max(maxY, MY); + const points = pointsCallback(buffer, pointsArray.subarray(i, i + 8)); + Util.rectBoundingBox(...points, bbox); } buffer.push("Q"); @@ -1771,7 +1762,6 @@ class MarkupAnnotation extends Annotation { const appearanceDict = new Dict(xref); appearanceDict.set("Resources", resources); - const bbox = (this.data.rect = [minX, minY, maxX, maxY]); appearanceDict.set("BBox", bbox); this.appearance = new StringStream("/GS0 gs /Fm0 Do"); @@ -4162,8 +4152,8 @@ class LineAnnotation extends MarkupAnnotation { ); return [ points[0] - borderWidth, - points[2] + borderWidth, points[7] - borderWidth, + points[2] + borderWidth, points[3] + borderWidth, ]; }, @@ -4214,7 +4204,7 @@ class SquareAnnotation extends MarkupAnnotation { } else { buffer.push("S"); } - return [points[0], points[2], points[7], points[3]]; + return [points[0], points[7], points[2], points[3]]; }, }); } @@ -4278,7 +4268,7 @@ class CircleAnnotation extends MarkupAnnotation { } else { buffer.push("S"); } - return [points[0], points[2], points[7], points[3]]; + return [points[0], points[7], points[2], points[3]]; }, }); } @@ -4349,7 +4339,7 @@ class PolylineAnnotation extends MarkupAnnotation { ); } buffer.push("S"); - return [points[0], points[2], points[7], points[3]]; + return [points[0], points[7], points[2], points[3]]; }, }); } @@ -4456,7 +4446,7 @@ class InkAnnotation extends MarkupAnnotation { } buffer.push("S"); } - return [points[0], points[2], points[7], points[3]]; + return [points[0], points[7], points[2], points[3]]; }, }); } @@ -4688,7 +4678,7 @@ class HighlightAnnotation extends MarkupAnnotation { `${points[4]} ${points[5]} l`, "f" ); - return [points[0], points[2], points[7], points[3]]; + return [points[0], points[7], points[2], points[3]]; }, }); } @@ -4813,7 +4803,7 @@ class UnderlineAnnotation extends MarkupAnnotation { `${points[6]} ${points[7] + 1.3} l`, "S" ); - return [points[0], points[2], points[7], points[3]]; + return [points[0], points[7], points[2], points[3]]; }, }); } @@ -4857,7 +4847,7 @@ class SquigglyAnnotation extends MarkupAnnotation { buffer.push(`${x} ${y + shift} l`); } while (x < xEnd); buffer.push("S"); - return [points[4], xEnd, y - 2 * dy, y + 2 * dy]; + return [points[4], y - 2 * dy, xEnd, y + 2 * dy]; }, }); } @@ -4896,7 +4886,7 @@ class StrikeOutAnnotation extends MarkupAnnotation { `${(points[3] + points[7]) / 2} l`, "S" ); - return [points[0], points[2], points[7], points[3]]; + return [points[0], points[7], points[2], points[3]]; }, }); }