Il existe plusieurs méthodes permettant d'afficher un PDF dans une application Qt, donc de facto dans une application QML.
Nous allons voir dans ce billet comment faire ceci pour un projet QML en utilisant pdf.js avec notamment la visionneuse par défaut que cet outil propose (vous pouvez d'ores et déjà télécharger l'archive fournie)
La solution que nous allons voir ici est relativement simple : pdf.js permet d'afficher un fichier PDF dans un navigateur. Il est possible de créer son propre navigateur avec QML et en particulier avec WebEngineView. Nous allons tout simplement utiliser celui-ci afin d'obtenir le résultat attendu.
Tout d'abord le code QML permettant de disposer d'un navigateur web :
Code qml : | Sélectionner tout |
1 2 3 4 5 6 7 8 | import QtQuick 2.5 import QtWebEngine 1.0 WebEngineView { width: 800 height: 600 url: "http://www.developpez.net/forums/blogs/135545-jiyuu/" } |
Rien de très compliqué (normal c'est du QML )
Étant donné que nous allons devoir utiliser la visionneuse de pdf.js afin d'afficher un pdf je vous propose la modification suivante du code précédent :
Code qml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import QtQuick 2.5 import QtWebEngine 1.0 WebEngineView { id: webview property string viewer // chemin absolu pointant vers notre fichier viewer.html dernièrement téléchargé. property string pathPdf // chemin absolu pointant vers le document pdf à afficher. // le code ci-dessous permettra d'afficher une page blanche si au moins l'un des deux chemins n'est pas renseigné url: if (viewer && pathPdf) { viewer + "?file=" + pathPdf } } |
Il ne vous reste plus qu'à utiliser ce composant dans votre projet afin d'y afficher le PDF voulu.