diff tests/test_linequad.py @ 1:1d09e1dec1d9 upstream

ADD: PyMuPDF v1.26.4: the original sdist. It does not yet contain MuPDF. This normally will be downloaded when building PyMuPDF.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:37:51 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_linequad.py	Mon Sep 15 11:37:51 2025 +0200
@@ -0,0 +1,30 @@
+"""
+Check approx. equality of search quads versus quads recovered from
+text extractions.
+"""
+import os
+
+import pymupdf
+
+scriptdir = os.path.abspath(os.path.dirname(__file__))
+filename = os.path.join(scriptdir, "resources", "quad-calc-0.pdf")
+
+
+def test_quadcalc():
+    text = " angle 327"  # search for this text
+    doc = pymupdf.open(filename)
+    page = doc[0]
+    # This special page has one block with one line, and
+    # its last span contains the searched text.
+    block = page.get_text("dict", flags=0)["blocks"][0]
+    line = block["lines"][0]
+    # compute quad of last span in line
+    lineq = pymupdf.recover_line_quad(line, spans=line["spans"][-1:])
+
+    # let text search find the text returning quad coordinates
+    rl = page.search_for(text, quads=True)
+    searchq = rl[0]
+    assert abs(searchq.ul - lineq.ul) <= 1e-4
+    assert abs(searchq.ur - lineq.ur) <= 1e-4
+    assert abs(searchq.ll - lineq.ll) <= 1e-4
+    assert abs(searchq.lr - lineq.lr) <= 1e-4