Bonjour,

Mon objectif est de générer un document administratif du type :Nom : document.jpeg
Affichages : 173
Taille : 18,0 Ko

Pour y parvenir j'utilise canvas et build de reportlab mais j'ai des soucis probablement à cause d'une mauvaise compréhension

print.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
from reportlab.lib.pagesizes import letter, A4
from reportlab.pdfgen import canvas
from reportlab.platypus import SimpleDocTemplate, PageTemplate, Paragraph, Spacer, Image
 
class Printer :
 
    def header(canvas, doc, content) :
 
        canvas.saveState()
        width, height = A4
        canvas.setLineWidth(.3)
        canvas.setFont('Helvetica', 12)
        canvas.drawString(72,750,Ministère de ...')
        #c.line(30,735,30,735)
        canvas.line(92,740,150,740)
        canvas.drawString(72,720,'SECRETARIAT GENERAL')
        canvas.line(92,710,150,710)
        canvas.drawString(72,690,'DIRECTION GENERALE DE ...')
        canvas.drawString(72,675,'DIRECTION DE ...')
        canvas.line(92,665,150,665)
        canvas.drawString(72,645,'Service de ...')
        canvas.drawString(428,750,'Nom du pays')
 
 
        canvas.restoreState()
 
 
    def body(canvas, doc, content) :
        canvas.saveState()
        canvas.drawString(72, 550, 'Les travaux de câblage informatique des bâtiments du siège ont démarré' )
        canvas.drawString(72, 530, 'le 26 mars 2019 et se poursuivent sans difficultés majeures.')
        canvas.drawString(72, 510,'Toutefois il convient de porter à votre connaissance que les travaux')
        canvas.drawString(72, 490, 'ne prennent pas en compte certains bâtiments pour diverses raisons.')
        canvas.restoreState()
 
    def build_doc():
        doc = SimpleDocTemplate("letter.pdf")
        doc.build(onFirstPage=header, onLaterPages=body)
Je voudrais savoir si je suis sur la bonne voie pour parvenir à mes fins. Et comment je pourrai générer le document avec une méthode dans views.py