Make an XObject from a PDF page For a positive xref assume that its object can be used instead
(pdfout, fsrcpage, xref, gmap)
| 21927 | |
| 21928 | |
| 21929 | def JM_xobject_from_page(pdfout, fsrcpage, xref, gmap): |
| 21930 | ''' |
| 21931 | Make an XObject from a PDF page |
| 21932 | For a positive xref assume that its object can be used instead |
| 21933 | ''' |
| 21934 | assert isinstance(gmap, mupdf.PdfGraftMap), f'{type(gmap)=}' |
| 21935 | if xref > 0: |
| 21936 | xobj1 = mupdf.pdf_new_indirect(pdfout, xref, 0) |
| 21937 | else: |
| 21938 | srcpage = _as_pdf_page(fsrcpage.this) |
| 21939 | spageref = srcpage.obj() |
| 21940 | mediabox = mupdf.pdf_to_rect(mupdf.pdf_dict_get_inheritable(spageref, PDF_NAME('MediaBox'))) |
| 21941 | # Deep-copy resources object of source page |
| 21942 | o = mupdf.pdf_dict_get_inheritable(spageref, PDF_NAME('Resources')) |
| 21943 | if gmap.m_internal: |
| 21944 | # use graftmap when possible |
| 21945 | resources = mupdf.pdf_graft_mapped_object(gmap, o) |
| 21946 | else: |
| 21947 | resources = mupdf.pdf_graft_object(pdfout, o) |
| 21948 | |
| 21949 | # get spgage contents source |
| 21950 | res = JM_read_contents(spageref) |
| 21951 | |
| 21952 | #------------------------------------------------------------- |
| 21953 | # create XObject representing the source page |
| 21954 | #------------------------------------------------------------- |
| 21955 | xobj1 = mupdf.pdf_new_xobject(pdfout, mediabox, mupdf.FzMatrix(), mupdf.PdfObj(0), res) |
| 21956 | # store spage contents |
| 21957 | JM_update_stream(pdfout, xobj1, res, 1) |
| 21958 | |
| 21959 | # store spage resources |
| 21960 | mupdf.pdf_dict_put(xobj1, PDF_NAME('Resources'), resources) |
| 21961 | return xobj1 |
| 21962 | |
| 21963 | |
| 21964 | def PySequence_Check(s): |
no test coverage detected
searching dependent graphs…