first working version
This commit is contained in:
82
makepdf.py
Normal file
82
makepdf.py
Normal 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")
|
Reference in New Issue
Block a user