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)
- Everything works as expected if we use
import fitzinstead ofimport fitz_new as fitz. - Other boxes (cropbox, trimbox, artbox, bleedbox, rect) are
fitz_new.Rectobjects (which is correct); mediabox is the only one with the wrong type