From 686cfb25394041af66392d44696f6bbce75dd5fe Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sun, 19 Nov 2023 23:51:27 -0800 Subject: [PATCH] Add rendering of space between boxes --- src/ocrmypdf/hocrtransform/__init__.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ocrmypdf/hocrtransform/__init__.py b/src/ocrmypdf/hocrtransform/__init__.py index be4415ff..91b9b9c1 100755 --- a/src/ocrmypdf/hocrtransform/__init__.py +++ b/src/ocrmypdf/hocrtransform/__init__.py @@ -126,6 +126,7 @@ class DebugRenderOptions: render_triangle: bool render_line_bbox: bool render_word_bbox: bool + render_space_bbox: bool class HocrTransformError(Exception): @@ -181,6 +182,7 @@ class HocrTransform: render_line_bbox=False, render_word_bbox=True, render_paragraph_bbox=False, + render_space_bbox=True, ) def __str__(self): # pragma: no cover @@ -465,7 +467,7 @@ class HocrTransform: ) next_cm_box = next_box.transform(line_matrix, inverse=True) space_box = Rect(cm_box.x2, cm_line_box.y1, next_cm_box.x1, cm_line_box.y2) - # self._do_debug_word_bbox(canvas, line_height, cm_line_box, space_box, 0) + self._do_debug_space_bbox(canvas, space_box) text.set_text_transform(1, 0, 0, 1, space_box.x1, cm_line_box.y1) space_width = canvas.string_width(' ', fontname, fontsize) box_width = space_box.x2 - space_box.x1 @@ -515,6 +517,16 @@ class HocrTransform: canvas.rect(cm_box.x1, cm_line_box.y1, box_width, line_height, fill=0) canvas.pop() + def _do_debug_space_bbox(self, canvas, box): + if not self.render_options.render_space_bbox: # pragma: no cover + return + canvas.push() + canvas.set_dashes() + canvas.set_fill_color(green) + canvas.set_line_width(0.1) + canvas.rect(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1, fill=1) + canvas.pop() + def _do_debug_baseline(self, canvas, slope, line_box, baseline_y1): if not self.render_options.render_baseline: return