()
| 704 | print(page.mediabox.width) |
| 705 | |
| 706 | def test_2710(): |
| 707 | doc = pymupdf.open(f'{scriptdir}/resources/test_2710.pdf') |
| 708 | page = doc.load_page(0) |
| 709 | |
| 710 | print(f'test_2710(): {page.cropbox=}') |
| 711 | print(f'test_2710(): {page.mediabox=}') |
| 712 | print(f'test_2710(): {page.rect=}') |
| 713 | |
| 714 | def numbers_approx_eq(a, b): |
| 715 | return abs(a-b) < 0.001 |
| 716 | def points_approx_eq(a, b): |
| 717 | return numbers_approx_eq(a.x, b.x) and numbers_approx_eq(a.y, b.y) |
| 718 | def rects_approx_eq(a, b): |
| 719 | return points_approx_eq(a.bottom_left, b.bottom_left) and points_approx_eq(a.top_right, b.top_right) |
| 720 | def assert_rects_approx_eq(a, b): |
| 721 | assert rects_approx_eq(a, b), f'Not nearly identical: {a=} {b=}' |
| 722 | |
| 723 | blocks = page.get_text('blocks') |
| 724 | print(f'test_2710(): {blocks=}') |
| 725 | assert len(blocks) == 2 |
| 726 | block = blocks[1] |
| 727 | rect = pymupdf.Rect(block[:4]) |
| 728 | text = block[4] |
| 729 | print(f'test_2710(): {rect=}') |
| 730 | print(f'test_2710(): {text=}') |
| 731 | assert text == 'Text at left page border\n' |
| 732 | |
| 733 | assert_rects_approx_eq(page.cropbox, pymupdf.Rect(30.0, 30.0, 565.3200073242188, 811.9199829101562)) |
| 734 | assert_rects_approx_eq(page.mediabox, pymupdf.Rect(0.0, 0.0, 595.3200073242188, 841.9199829101562)) |
| 735 | print(f'test_2710(): {pymupdf.mupdf_version_tuple=}') |
| 736 | # 2023-11-05: Currently broken in mupdf master. |
| 737 | print(f'test_2710(): Not Checking page.rect and rect.') |
| 738 | wt = pymupdf.TOOLS.mupdf_warnings() |
| 739 | assert wt == ( |
| 740 | "syntax error: cannot find ExtGState resource 'GS7'\n" |
| 741 | "syntax error: cannot find ExtGState resource 'GS8'\n" |
| 742 | "encountered syntax errors; page may not be correct" |
| 743 | ) |
| 744 | |
| 745 | |
| 746 | def test_2736(): |
nothing calls this directly
no test coverage detected
searching dependent graphs…