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

Method _get_page_labels

src/__init__.py:3858–3888  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

3856 return wlist
3857
3858 def _get_page_labels(self):
3859 pdf = _as_pdf_document(self)
3860 rc = []
3861 pagelabels = mupdf.pdf_new_name("PageLabels")
3862 obj = mupdf.pdf_dict_getl( mupdf.pdf_trailer(pdf), PDF_NAME('Root'), pagelabels)
3863 if not obj.m_internal:
3864 return rc
3865 # simple case: direct /Nums object
3866 nums = mupdf.pdf_resolve_indirect( mupdf.pdf_dict_get( obj, PDF_NAME('Nums')))
3867 if nums.m_internal:
3868 JM_get_page_labels(rc, nums)
3869 return rc
3870 # case: /Kids/Nums
3871 nums = mupdf.pdf_resolve_indirect( mupdf.pdf_dict_getl(obj, PDF_NAME('Kids'), PDF_NAME('Nums')))
3872 if nums.m_internal:
3873 JM_get_page_labels(rc, nums)
3874 return rc
3875 # case: /Kids is an array of multiple /Nums
3876 kids = mupdf.pdf_resolve_indirect( mupdf.pdf_dict_get( obj, PDF_NAME('Kids')))
3877 if not kids.m_internal or not mupdf.pdf_is_array(kids):
3878 return rc
3879 n = mupdf.pdf_array_len(kids)
3880 for i in range(n):
3881 nums = mupdf.pdf_resolve_indirect(
3882 mupdf.pdf_dict_get(
3883 mupdf.pdf_array_get(kids, i),
3884 PDF_NAME('Nums'),
3885 )
3886 )
3887 JM_get_page_labels(rc, nums)
3888 return rc
3889
3890 def _getMetadata(self, key):
3891 """Get metadata."""

Callers 6

get_page_labelsMethod · 0.95
get_page_numbersMethod · 0.80
get_labelMethod · 0.80
get_labelFunction · 0.80
get_page_numbersFunction · 0.80
get_page_labelsFunction · 0.80

Calls 4

_as_pdf_documentFunction · 0.85
PDF_NAMEFunction · 0.85
JM_get_page_labelsFunction · 0.85
pdf_trailerMethod · 0.80

Tested by

no test coverage detected