Spaces:
Running
Running
| """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() | |