first working version

This commit is contained in:
2024-06-02 14:41:17 +02:00
commit 7bb14c21c1

82
makepdf.py Normal file
View File

@@ -0,0 +1,82 @@
import fpdf
WIDHTH = 84
HEIGHT = 54
FOND_PERDU = 5
ZONE_TRANQUILLE = 3
MARGE = 10
def generateTemplate(
width: int, height: int, fondPerdu: int, zoneTranquille: int, marge: int
) -> fpdf.FPDF:
margeDuContenue = marge + fondPerdu
pdf = fpdf.FPDF(
"P",
"mm",
(width + margeDuContenue * 2, height + margeDuContenue * 2),
)
pdf.set_font("Arial", "B", 16) # dummy font
pdf.set_margins(0, 0)
pdf.set_auto_page_break(False)
pdf.add_page()
pdf.set_draw_color(255, 0, 0) # red
pdf.rect(margeDuContenue, margeDuContenue, width, height)
pdf.set_draw_color(0, 0, 255) # blue
pdf.rect(
margeDuContenue - fondPerdu,
margeDuContenue - fondPerdu,
width + fondPerdu * 2,
height + fondPerdu * 2,
)
pdf.set_draw_color(0, 255, 0) # green
pdf.rect(
margeDuContenue + zoneTranquille,
margeDuContenue + zoneTranquille,
width - zoneTranquille * 2,
height - zoneTranquille * 2,
)
pdf.set_draw_color(0, 0, 0)
LINES = [
(margeDuContenue, 0, margeDuContenue, marge),
(margeDuContenue + width, 0, margeDuContenue + width, marge),
(
margeDuContenue,
height + margeDuContenue * 2,
margeDuContenue,
height + margeDuContenue * 2 - marge,
),
(
margeDuContenue + width,
height + margeDuContenue * 2,
margeDuContenue + width,
height + margeDuContenue * 2 - marge,
),
(0, margeDuContenue, marge, margeDuContenue),
(0, margeDuContenue + height, marge, margeDuContenue + height),
(
width + margeDuContenue * 2,
margeDuContenue,
width + margeDuContenue * 2 - marge,
margeDuContenue,
),
(
width + margeDuContenue * 2,
margeDuContenue + height,
width + margeDuContenue * 2 - marge,
margeDuContenue + height,
),
]
for line in LINES:
pdf.line(*line)
return pdf
generateTemplate(WIDHTH, HEIGHT, FOND_PERDU, ZONE_TRANQUILLE, MARGE).output("test.pdf")