MCPcopy Create free account
hub / github.com/pymupdf/PyMuPDF / Page

Class Page

src/__init__.py:9485–13233  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9483
9484
9485class Page:
9486
9487 def __init__(self, page, document):
9488 assert isinstance(page, (mupdf.FzPage, mupdf.PdfPage)), f'page is: {page}'
9489 self.this = page
9490 self.thisown = True
9491 self.last_point = None
9492 self.draw_cont = ''
9493 self._annot_refs = dict()
9494 self.parent = document
9495 if page.m_internal:
9496 if isinstance( page, mupdf.PdfPage):
9497 self.number = page.m_internal.super.number
9498 else:
9499 self.number = page.m_internal.number
9500 else:
9501 self.number = None
9502
9503 def __repr__(self):
9504 return self.__str__()
9505
9506 def __str__(self):
9507 #CheckParent(self)
9508 parent = getattr(self, 'parent', None)
9509 if isinstance(self.this.m_internal, mupdf.pdf_page):
9510 number = self.this.m_internal.super.number
9511 else:
9512 number = self.this.m_internal.number
9513
9514 if parent:
9515 x = self.parent.name
9516 if self.parent.stream is not None:
9517 x = "memory"
9518 if x == "":
9519 x = "new PDF"
9520 ret = f'page {number} of <{x}, doc# {self.parent._graft_id:d}>'
9521 else:
9522 ret = f'page {number}'
9523 return ret
9524
9525 def _add_caret_annot(self, point):
9526 if g_use_extra:
9527 annot = extra._add_caret_annot( self.this, JM_point_from_py(point))
9528 else:
9529 page = self._pdf_page()
9530 annot = mupdf.pdf_create_annot(page, mupdf.PDF_ANNOT_CARET)
9531 if point:
9532 p = JM_point_from_py(point)
9533 r = mupdf.pdf_annot_rect(annot)
9534 r = mupdf.FzRect(p.x, p.y, p.x + r.x1 - r.x0, p.y + r.y1 - r.y0)
9535 mupdf.pdf_set_annot_rect(annot, r)
9536 mupdf.pdf_update_annot(annot)
9537 JM_add_annot_id(annot, "A")
9538 return annot
9539
9540 def _add_file_annot(self, point, buffer_, filename, ufilename=None, desc=None, icon=None):
9541 page = self._pdf_page()
9542 uf = ufilename if ufilename else filename

Callers 2

get_parentMethod · 0.85
load_pageMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…