Bonjour,

J'ai une erreur lors de l'utilisation d'un story et frame avec Reportlab que je n'arrive pas à analyser.

Voici le message d'erreur :

Traceback (most recent call last):
File "D:\Dropbox\Dropbox\_Stephane\Développement\Python\pdf.py", line 171, in <module>
cadreGauche.addFromList(story, can) # remplir le cadre de gauche
File "C:\Users\Stéphane\AppData\Local\Programs\Python\Python35\lib\site-packages\reportlab\platypus\frames.py", line 273, in addFromList
if self.add(head,canv,trySplit=0):
File "C:\Users\Stéphane\AppData\Local\Programs\Python\Python35\lib\site-packages\reportlab\platypus\frames.py", line 167, in _add
w, h = flowable.wrap(aW, h)
File "C:\Users\Stéphane\AppData\Local\Programs\Python\Python35\lib\site-packages\reportlab\platypus\flowables.py", line 493, in wrap
return self.drawWidth, self.drawHeight
File "C:\Users\Stéphane\AppData\Local\Programs\Python\Python35\lib\site-packages\reportlab\platypus\flowables.py", line 488, in __getattr__
return self.__dict__[a]
KeyError: 'drawWidth'



Et voici le code :
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
can = Canvas("{}".format(Fichier),pagesize=A4)
FichierTexte = open("pdf_TexteSource.txt","r",encoding="Utf8") #Ouverture en mode lecture et encodage UTF8
#On charge le fichier dans un tableau
TexteListe = []
while 1: #On sortira de la boucle si une ligne est vide
    ligne = FichierTexte.readline() #On lit la ligne
    if not ligne: #On s'arrête si la ligne est vide
        break
    TexteListe.append(ligne) #On ajoute la ligne au tableau
FichierTexte.close() #Fermeture du fichier
Styles = getSampleStyleSheet()  # Dictionnaire de styles prédéfinis
StyleN = Styles["Normal"]   # Objet de classe ParagraphStyle()
 
# Les paragraphes, interlignes et figures seront appelés éléments "fluables".
# Insertion de ces éléments fluables dans la liste <story> ("l'histoire") :
ParaCompteur, FluableCompteur, story = 0,0,[]
for ligne in TexteListe:
    story.append(Paragraph(ligne,StyleN))   # Ajout d'un paragraphe
    ParaCompteur +=1                        # Compteur de paragraphe
    story.append(Spacer(1, 0.5*cm))         # Ajout d'un espace de 5 mm
    FluableCompteur +=2
    if ParaCompteur in (3,5,10,18):
        story.append(ImageRL("ga.jpg",3*cm,3*cm,kind="proportionnal"))
        FluableCompteur +=1
# Mise en place de trois cadres (2 "colonnes" et un "bas de page") :
cadreGauche =Frame(1*cm, 11*cm, 9*cm, 16*cm, showBoundary =1)
# Mise en place des éléments fluables dans ces trois cadres :
cadreGauche.addFromList(story, can)                    # remplir le cadre de gauche