Bonjour,
J'avais un programme écrit en Qt 4.8.4 qui convertissait des documents HTML en PDF via QWebPage et QPrinter. Je suis en train d'essayer de le migrer dans la dernière version de Qt (5.9.1) et je me heurte à des murs dans tous les coins.

Tout d'abord, voici mes contraintes:
  1. Mon document HTML est formaté via CSS pour générer des pages A4 quand il est imprimé en PDF. Je n'utilise donc pas newPage() car j'ignore en fait où sous les sauts de page (c'est le contenu du document via un div qui le précise)
  2. Je dois absolument pouvoir spécifier une des propriétés du document (nous avions choisi "Creator") qui apparait quand on fait "propriétés" sur le fichier PDF


Mes problèmes sont liés au fait que Qt a décidé de remplacer le QtWebKit qui marchait super bien par un QtWebEngine avec lequel je n'arrive pas à faire ce que je souhaite.J'ai migré ma QWebPage en QWebEnginePage.
  1. La classe QWebEnginePage possède une fonction printToPdf mais je n'ai rien trouvé pour lui spécifier la valeur de la propriété "Creator". J'ai essayé de spécifier dans le HTML le titre et l'auteur, mais QWebEnginePage n'en tient pas compte.
  2. Avec QPrinter rien ne marche. J'ai systématiquement une erreur. Soit j'ai une erreur liée à une conversion de glyphe vers unicode (avec la fonte Calibri) qui annule l'impression. Soit j'ai une erreur à la création d'un QImage avec unetaille d'imagesqui n'est pas anormale. Et là aussi l'impression est donc annulée.


J'ai essayé d'utiliser QTextDocument plutôt que QWebEnginePage. Mais QTextDocument se moque totalement du formatage A4 via les CSS.

J'ai envisagé de revenir au QtWebKit car il semblerait que ce soit toujours utilisable. Sauf qu'il n'existe visiblement pas d'installeur Windows. Et la compilation/installation semble être une vraie usine à gaz. D'autant que le script livré avec pour cela nécessite Bison. Et que mon anti-virus (Symantec) dit "pas propre". Et la dernière fois que je l'ai pas écouté (sur MASM) je me suis retrouvé avec des malwares.

Donc là je recherche un moyen de me sortir de cette galère.

Merci d'avance pour votre aide.