à tous,
J'ai besoin de créer un document PDF contenant du texte et un tableau.
J'aimerai automatiser la création d'une nouvelle page lorsque ceci est nécessaire.
Auriez-vous une piste pour m'aider ?
D'avance merci.
++
J
à tous,
J'ai besoin de créer un document PDF contenant du texte et un tableau.
J'aimerai automatiser la création d'une nouvelle page lorsque ceci est nécessaire.
Auriez-vous une piste pour m'aider ?
D'avance merci.
++
J
Hello,
Fait pas bon vieillir ... j'avais oublié que je m'étais déjà exercer à ceci avec PyQt. La solution est de passer avec ce morceau de code :
où doc est un QTextDocument, painter un QPainter et writer mon QPdfWriter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 while (currentRect.intersects(contentRect)){ doc.drawContents(&painter, currentRect); count++; currentRect.translate(0, currentRect.height()); painter.restore(); painter.drawText(10, 10, QString("Header %1").arg(count)); painter.drawText(10, 12000, html); painter.save(); painter.translate(0, - currentRect.height() * count + 28); if (currentRect.intersects(contentRect)){ writer.newPage(); } }
Cette méthode est très pratique car elle permet d'associer des painter.drawText avec le doc.drawContent par exemple. Cependant je rencontre un petite souci.
En effet, le saut de page se fait un peu n'importe comment et il n'est pas impossible qu'une ligne de texte soit à cheval sur deux pages notamment si je passe par un setHtml() pour insérer des infos dans le QTextDocument.
Une autre solution serait d'utiliser QTextDocument::print(QPrinter*) qui va tout gérer tranquillement. Les quelques tests que j'ai pu faire montrent que le saut de page est "propre", mais on perd beaucoup en personnification possible.
De plus passer par un QPrinter pour créer un pdf alors qu'il existe QPdfWriter ça me dérange un peu ... ne pas utiliser ce qui semble prévu est dommage je trouve.
La dernière solution pour faire ce que je veux serai de tout gérer de A à Z avec QPdfWriter, QPainter et tout un tas de drawText, drawRect, ... personnification maximale mais à mon humble avis très très long à mettre en place.
Avez-vous des avis, conseils à me donner ?
D'avance merci à tous et bonne nuit.
++
J
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager