File size: 1,836 Bytes
40cf485
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"""Throwaway dev script: generate data/samples/flyer.pdf with fpdf2.

Usage: pip install fpdf2 && python scripts/make_flyer.py
"""

import os

from fpdf import FPDF

ITEMS = [
    ("Chicken Thighs", "$2.49/lb"),
    ("Ground Beef", "$3.99/lb"),
    ("Eggs 18ct", "$4.49"),
    ("Chickpeas", "2/$3"),
    ("Basmati Rice 8lb", "$9.99"),
    ("Greek Yogurt", "$4.99"),
    ("Bell Peppers", "$1.29 ea"),
    ("Spinach", "$2.99"),
    ("Sweet Potatoes", "99c/lb"),
    ("Canned Tomatoes", "4/$5"),
    ("Cheddar Block", "$5.49"),
    ("Tortillas 10pk", "$2.99"),
    ("Salmon Fillet", "$8.99/lb"),
    ("Oats 1kg", "$3.49"),
]

OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "data", "samples", "flyer.pdf")


def main() -> None:
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Helvetica", "B", 24)
    pdf.cell(0, 14, "FreshMart Weekly Specials", align="C", new_x="LMARGIN", new_y="NEXT")
    pdf.set_font("Helvetica", "", 10)
    pdf.cell(0, 6, "Open Mon-Sun 8am - 10pm", align="C", new_x="LMARGIN", new_y="NEXT")
    pdf.cell(0, 6, "1234 Maple Street, Toronto ON", align="C", new_x="LMARGIN", new_y="NEXT")
    pdf.set_font("Helvetica", "B", 14)
    pdf.cell(0, 10, "SALE", align="C", new_x="LMARGIN", new_y="NEXT")
    pdf.ln(4)
    # 2-column grid
    pdf.set_font("Helvetica", "", 12)
    col_w = pdf.epw / 2
    for i in range(0, len(ITEMS), 2):
        for j in range(2):
            if i + j < len(ITEMS):
                item, price = ITEMS[i + j]
                pdf.cell(col_w, 10, f"{item}  {price}", border=1)
        pdf.ln(10)
    pdf.ln(6)
    pdf.set_font("Helvetica", "I", 9)
    pdf.cell(0, 6, "While quantities last. Page 1", align="C")
    os.makedirs(os.path.dirname(OUT), exist_ok=True)
    pdf.output(OUT)
    print(f"Wrote {os.path.abspath(OUT)}")


if __name__ == "__main__":
    main()