(pdf, numbers)
| 18326 | |
| 18327 | |
| 18328 | def _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 | |
| 18364 | def ASSERT_PDF(cond): |
no test coverage detected
searching dependent graphs…