MCPcopy Index your code
hub / github.com/pymupdf/PyMuPDF / test_oc2

Function test_oc2

tests/test_optional_content.py:29–64  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

27
28
29def 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
67def test_3143():

Callers

nothing calls this directly

Calls 9

new_pageMethod · 0.80
add_ocgMethod · 0.80
set_ocmdMethod · 0.80
show_pdf_pageMethod · 0.80
get_xobjectsMethod · 0.80
get_ocgsMethod · 0.80
get_ocmdMethod · 0.80
get_oc_itemsMethod · 0.80
get_ocMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…