Bonjour,

Dans l'application que je développe le fichier html généré est converti en pdf par l'intermédiaire de wkhtmltopdf. Je voudrais (si j'y arrive) le faire avec QPrinter. Le souci est que le fichier pdf généré par QPrinter n'est pas du tout bon, c'est très certainement lié à la qualité du fichier html.

Pouvez-vous m'aider ?

Je vous mets le code de QPrinter par lequel je passe (pour l'instant je fais des tests) :

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
#!/usr/bin/python
#-*- coding: utf-8 -*-
 
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
 
class Html_vers_pdf(QPrinter):
    def __init__(self, fichier):
        super(Html_vers_pdf, self).__init__(QPrinter.HighResolution)
 
        html_file_path = open(fichier).read()
 
        html_file_path = html_file_path.decode('utf-8')
 
        self.doc = QTextDocument()
 
        self.doc.setHtml(html_file_path)
        self.printer = QPrinter(QPrinter.HighResolution)
        self.printer.setOutputFormat(QPrinter.PdfFormat)
        self.printer.setOrientation(QPrinter.Portrait)
        self.printer.setPaperSize(QPrinter.A4)
 
        self.printer.setPageMargins(10, 10, 10, 10, QPrinter.Millimeter)
        print u"Le fichier pdf a été crée !"
        self.printer.setOutputFileName("essaiPDF.pdf")
 
        self.doc.print_(self.printer)
 
if __name__ == '__main__':
	app = QApplication(sys.argv)
	Html_vers_pdf('3eme_collages_et_diverses_associations_sequence_1_POUR_L_ELEVE.html')
Je vous mets aussi le fichier html (qui avec wkhtmltopdf me donne quelque chose de bien (ce que je veux obtenir en fait) :

3eme_collages_et_diverses_associations_sequence_1_POUR_L_ELEVE.html

Le fichier pdf généré dans mon application par wkhtmltopdf :

3eme_collages_et_diverses_associations_sequence_1_POUR_L_ELEVE.pdf

Voilà le fichier pdf généré avec QPrinter avec mes essais :

essaiPDF.pdf

Si quelqu'un ici pouvait regarder le fichier html et me dire ce qui coince pour que QPrinter puisse faire le boulot correctement, ce serait super ...

Merci d'avance.

Bonne journée.