From 8b6ecd5971b255fe283fe12107ca33e13dd8a6c9 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sun, 19 Nov 2023 23:51:27 -0800 Subject: [PATCH] Fix line and rect drawing --- src/ocrmypdf/hocrtransform/backends/pikepdf.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ocrmypdf/hocrtransform/backends/pikepdf.py b/src/ocrmypdf/hocrtransform/backends/pikepdf.py index c8506a6e..31e417ea 100644 --- a/src/ocrmypdf/hocrtransform/backends/pikepdf.py +++ b/src/ocrmypdf/hocrtransform/backends/pikepdf.py @@ -192,6 +192,12 @@ class ContentStreamBuilder: self._instructions.append(inst) return self + def fill(self): + """Stroke and close path.""" + inst = ContentStreamInstruction([], Operator("f")) + self._instructions.append(inst) + return self + def append_rectangle(self, x: float, y: float, w: float, h: float): """Append rectangle to path.""" inst = ContentStreamInstruction([x, y, w, h], Operator("re")) @@ -262,10 +268,14 @@ class PikepdfCanvas(BaseCanvas): def line(self, x1, y1, x2, y2): self._cs.line(x1, y1, x2, y2) + self._cs.stroke_and_close() def rect(self, x, y, w, h, fill): self._cs.append_rectangle(x, y, w, h) - self._cs.stroke_and_close() + if fill: + self._cs.fill() + else: + self._cs.stroke_and_close() def begin_text(self, x=0, y=0, direction=None): return PikepdfText(x, y, direction)