def test_2_pages_outline(tmp_path): pdf = FPDF() pdf.set_font("Helvetica") pdf.set_section_title_styles( # Level 0 titles: TitleStyle( font_family="Times", font_style="B", font_size_pt=24, color=128, underline=True, t_margin=10, l_margin=10, b_margin=0, ), ) pdf.add_page() pdf.set_y(50) pdf.set_font(size=40) p(pdf, "Doc Title", align="C") pdf.set_font(size=12) pdf.insert_toc_placeholder(render_toc, pages=2) for i in range(40): pdf.start_section(f"Title {i}") p( pdf, "Lorem ipsum dolor sit amet, consectetur adipiscing elit," " sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", ) assert_pdf_equal(pdf, HERE / "test_2_pages_outline.pdf", tmp_path)
def test_insert_toc_placeholder_with_invalid_arg_type(): pdf = FPDF() pdf.add_page() with pytest.raises(TypeError): pdf.insert_toc_placeholder("render_toc")
def test_insert_toc_placeholder_twice(): pdf = FPDF() pdf.add_page() pdf.insert_toc_placeholder(render_toc) with pytest.raises(errors.FPDFException): pdf.insert_toc_placeholder(render_toc)
def test_simple_outline(tmp_path): pdf = FPDF() pdf.set_font("Helvetica") pdf.set_section_title_styles( # Level 0 titles: TitleStyle( font_family="Times", font_style="B", font_size_pt=24, color=128, underline=True, t_margin=10, l_margin=10, b_margin=0, ), # Level 1 subtitles: TitleStyle( font_family="Times", font_style="B", font_size_pt=20, color=128, underline=True, t_margin=10, l_margin=20, b_margin=5, ), ) pdf.add_page() pdf.set_y(50) pdf.set_font(size=40) p(pdf, "Doc Title", align="C") pdf.set_font(size=12) pdf.insert_toc_placeholder(render_toc) pdf.start_section("Title 1") pdf.start_section("Subtitle 1.1", level=1) p( pdf, "Lorem ipsum dolor sit amet, consectetur adipiscing elit," " sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", ) pdf.add_page() pdf.start_section("Subtitle 1.2", level=1) p( pdf, "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", ) pdf.add_page() pdf.start_section("Title 2") pdf.start_section("Subtitle 2.1", level=1) p( pdf, "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", ) pdf.add_page() pdf.start_section("Subtitle 2.2", level=1) p( pdf, "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", ) assert_pdf_equal(pdf, HERE / "test_simple_outline.pdf", tmp_path)