()
| 27 | |
| 28 | |
| 29 | def test_oc2(): |
| 30 | # source file with at least 4 pages |
| 31 | src = pymupdf.open(filename) |
| 32 | |
| 33 | # new PDF with one page |
| 34 | doc = pymupdf.open() |
| 35 | page = doc.new_page() |
| 36 | |
| 37 | # define the 4 rectangle quadrants to receive the source pages |
| 38 | r0 = page.rect / 2 |
| 39 | r1 = r0 + (r0.width, 0, r0.width, 0) |
| 40 | r2 = r0 + (0, r0.height, 0, r0.height) |
| 41 | r3 = r2 + (r2.width, 0, r2.width, 0) |
| 42 | |
| 43 | # make 4 OCGs - one for each source page image. |
| 44 | # only first is ON initially |
| 45 | ocg0 = doc.add_ocg("ocg0", on=True) |
| 46 | ocg1 = doc.add_ocg("ocg1", on=False) |
| 47 | ocg2 = doc.add_ocg("ocg2", on=False) |
| 48 | ocg3 = doc.add_ocg("ocg3", on=False) |
| 49 | |
| 50 | ocmd0 = doc.set_ocmd(ve=["and", ocg0, ["not", ["or", ocg1, ocg2, ocg3]]]) |
| 51 | ocmd1 = doc.set_ocmd(ve=["and", ocg1, ["not", ["or", ocg0, ocg2, ocg3]]]) |
| 52 | ocmd2 = doc.set_ocmd(ve=["and", ocg2, ["not", ["or", ocg1, ocg0, ocg3]]]) |
| 53 | ocmd3 = doc.set_ocmd(ve=["and", ocg3, ["not", ["or", ocg1, ocg2, ocg0]]]) |
| 54 | ocmds = (ocmd0, ocmd1, ocmd2, ocmd3) |
| 55 | # insert the 4 source page images, each connected to one OCG |
| 56 | page.show_pdf_page(r0, src, 0, oc=ocmd0) |
| 57 | page.show_pdf_page(r1, src, 1, oc=ocmd1) |
| 58 | page.show_pdf_page(r2, src, 2, oc=ocmd2) |
| 59 | page.show_pdf_page(r3, src, 3, oc=ocmd3) |
| 60 | xobj_ocmds = [doc.get_oc(item[0]) for item in page.get_xobjects() if item[1] != 0] |
| 61 | assert set(ocmds) <= set(xobj_ocmds) |
| 62 | assert set((ocg0, ocg1, ocg2, ocg3)) == set(tuple(doc.get_ocgs().keys())) |
| 63 | doc.get_ocmd(ocmd0) |
| 64 | page.get_oc_items() |
| 65 | |
| 66 | |
| 67 | def test_3143(): |
nothing calls this directly
no test coverage detected
searching dependent graphs…