def test_named_actions(tmp_path): pdf = FPDF() pdf.set_font("Helvetica", size=24) pdf.add_page() pdf.text(x=80, y=140, txt="First page") pdf.add_page() pdf.underline = True for x, y, named_action in ( (40, 80, "NextPage"), (120, 80, "PrevPage"), (40, 200, "FirstPage"), (120, 200, "LastPage"), ): pdf.text(x=x, y=y, txt=named_action) pdf.add_action( NamedAction(named_action), x=x, y=y - pdf.font_size, w=pdf.get_string_width(named_action), h=pdf.font_size, ) pdf.underline = False pdf.add_page() pdf.text(x=80, y=140, txt="Last page") assert_pdf_equal(pdf, HERE / "named_actions.pdf", tmp_path)
def test_launch_action(tmp_path): pdf = FPDF() pdf.set_font("Helvetica", size=24) pdf.add_page() x, y, text = 80, 140, "Launch action" pdf.text(x=x, y=y, txt=text) pdf.add_action( LaunchAction(file="goto_action.pdf"), x=x, y=y - pdf.font_size, w=pdf.get_string_width(text), h=pdf.font_size, ) assert_pdf_equal(pdf, HERE / "launch_action.pdf", tmp_path)
def test_goto_remote_action(tmp_path): pdf = FPDF() pdf.set_font("Helvetica", size=24) pdf.add_page() x, y, text = 80, 140, "GoTo-Remote action" pdf.text(x=x, y=y, txt=text) dest = DestinationXYZ(page=1, page_as_obj_id=False).as_str(pdf) pdf.add_action( GoToRemoteAction("goto_action.pdf", dest=dest), x=x, y=y - pdf.font_size, w=pdf.get_string_width(text), h=pdf.font_size, ) assert_pdf_equal(pdf, HERE / "goto_remote_action.pdf", tmp_path)
def test_goto_action(tmp_path): pdf = FPDF() pdf.set_font("Helvetica", size=24) pdf.add_page() x, y, text = 80, 140, "GoTo action" pdf.text(x=x, y=y, txt=text) pdf.add_action( GoToAction(dest=DestinationXYZ(page=2).as_str(pdf)), x=x, y=y - pdf.font_size, w=pdf.get_string_width(text), h=pdf.font_size, ) pdf.add_page() pdf.text(x=80, y=140, txt="Page 2") assert_pdf_equal(pdf, HERE / "goto_action.pdf", tmp_path)