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

Function _remove_dest_range

src/__init__.py:18328–18361  ·  view source on GitHub ↗
(pdf, numbers)

Source from the content-addressed store, hash-verified

18326
18327
18328def _remove_dest_range(pdf, numbers):
18329 pagecount = mupdf.pdf_count_pages(pdf)
18330 for i in range(pagecount):
18331 n1 = i
18332 if n1 in numbers:
18333 continue
18334
18335 pageref = mupdf.pdf_lookup_page_obj( pdf, i)
18336 annots = mupdf.pdf_dict_get( pageref, PDF_NAME('Annots'))
18337 if not annots.m_internal:
18338 continue
18339 len_ = mupdf.pdf_array_len(annots)
18340 for j in range(len_ - 1, -1, -1):
18341 o = mupdf.pdf_array_get( annots, j)
18342 if not mupdf.pdf_name_eq( mupdf.pdf_dict_get( o, PDF_NAME('Subtype')), PDF_NAME('Link')):
18343 continue
18344 action = mupdf.pdf_dict_get( o, PDF_NAME('A'))
18345 dest = mupdf.pdf_dict_get( o, PDF_NAME('Dest'))
18346 if action.m_internal:
18347 if not mupdf.pdf_name_eq( mupdf.pdf_dict_get( action, PDF_NAME('S')), PDF_NAME('GoTo')):
18348 continue
18349 dest = mupdf.pdf_dict_get( action, PDF_NAME('D'))
18350 pno = -1
18351 if mupdf.pdf_is_array( dest):
18352 target = mupdf.pdf_array_get( dest, 0)
18353 pno = mupdf.pdf_lookup_page_number( pdf, target)
18354 elif mupdf.pdf_is_string( dest):
18355 location, _, _ = mupdf.fz_resolve_link( pdf.super(), mupdf.pdf_to_text_string( dest))
18356 pno = location.page
18357 if pno < 0: # page number lookup did not work
18358 continue
18359 n1 = pno
18360 if n1 in numbers:
18361 mupdf.pdf_array_delete( annots, j)
18362
18363
18364def ASSERT_PDF(cond):

Callers 1

_remove_links_toMethod · 0.85

Calls 1

PDF_NAMEFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…