With fitz_new, wrong type for Page.mediabox (original) (raw)

Describe the bug (mandatory)

With fitz_new , type of Page.mediabox is fitz_new.mupdf.FzRect instead of fitz_new.Rect.

To Reproduce (mandatory)

Run those programs:

mediabox1.py

import fitz_new as fitz

document = fitz.open() page = document.new_page()

print(page.mediabox) print(page.mediabox.width)

mediabox2.py

import fitz_new as fitz

document = fitz.open() page = document.new_page()

myrect = fitz.Rect(0, 0, 10, 10)

print(page.mediabox) print(page.mediabox + myrect)

We get:

$ python3.12 mediabox1.py platform/c++/implementation/internal.cpp:205:reinit_singlethreaded(): Reinitialising as single-threaded. (x0=0 y0=0 x1=595 y1=842) Traceback (most recent call last): File "/home/louis/projets/pdfimpose/src/mediabox1.py", line 7, in print(page.mediabox.width) ^^^^^^^^^^^^^^^^^^^ AttributeError: 'FzRect' object has no attribute 'width' $ $ $ python3.12 mediabox2.py platform/c++/implementation/internal.cpp:205:reinit_singlethreaded(): Reinitialising as single-threaded. (x0=0 y0=0 x1=595 y1=842) Traceback (most recent call last): File "/home/louis/projets/pdfimpose/src/mediabox2.py", line 9, in print(page.mediabox + myrect) ~~~~~~~~~~~~~~^~~~~~~~ TypeError: unsupported operand type(s) for +: 'FzRect' and 'Rect'

Expected behavior (optional)

Programs ends without error (while printing a bunch of stuff in standard output).

Your configuration (mandatory)

PyMuPDF has been installed on Debian sid, in a virtualenv, with pip.

$ python3.12 -c 'import sys; import fitz; print(sys.version, "\n", sys.platform, "\n", fitz.doc)' 3.12.0 (main, Oct 4 2023, 06:27:34) [GCC 13.2.0] linux

PyMuPDF 1.23.5: Python bindings for the MuPDF 1.23.4 library. Version date: 2023-10-11 00:00:01. Built for Python 3.12 on linux (64-bit).

Additional context (optional)