IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un module Qt PDF en cours de préparation pour Qt Widgets
Basé sur PDFium, il offre toutes les fonctionnalités de base d'un lecteur de PDF

Le , par dourouc05

399PARTAGES

12  0 
Jusqu’à présent, avec Qt, si l’on voulait afficher un fichier PDF, le choix principal est Poppler, MuPDF étant aussi utilisé, mais sans facilité pour Qt Quick. Certains aventureux utilisent Qt WebEngine et pdf.js, la bibliothèque qu’utilise Firefox pour afficher les PDF. La situation pourrait changer : pendant un précédent hackathon, des développeurs de Qt ont écrit une petite couche d’intégration avec PDFium, le moteur d’affichage de PDF de Chromium. L’avantage principal par rapport à Poppler et MuPDF est la licence : PDFium est sous licence BSD, Poppler GPL et MuPDF AGPL.

Ce module expérimental a été récemment retravaillé et mis sous licence LGPL 3, pour être utilisable par le plus grand nombre. Il comporte principalement deux classes : QPdfDocument, qui permet d’afficher une page dans une QImage, ainsi que QPdfBookmarkModel, qui donne accès aux marque-pages. Une couche d’accès pour Qt Quick est dans les projets (considérer un PDF comme une image comme les autres — à l’exception cependant des pages multiples, fonctionnalité plus rare pour des formats d’images traditionnels), mais sans date certaine.


Voir les sources de Qt PDF.
Source : New QtLabs PDF module.
Vous avez lu gratuitement 6 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de tyrtamos
Expert éminent https://www.developpez.com
Le 20/07/2018 à 7:58
Bonjour,

Avec PyQt5, j'utilise pdf.js téléchargé ici: https://mozilla.github.io/pdf.js/.

Avec QWebEngineView, on affiche un pdf très simplement. Par exemple:

Code python : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/python3 
# -*- coding: utf-8 -*- 
# Python 3.5, PyQt5 v5.9 
  
import sys 
import os 
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets 
  
class Affichepdf(QtWebEngineWidgets.QWebEngineView): 
    def __init__(self, fichierpdf, viewerpdf): 
        super().__init__() 
        self.resize(600, 800) 
        PDFJS = 'file:///' + viewerpdf.replace('\\', '/') 
        PDF = 'file:///' + fichierpdf.replace('\\', '/') 
        self.load(QtCore.QUrl.fromUserInput('%s?file=%s' % (PDFJS, PDF))) 
  
if __name__ == '__main__': 
    app = QtWidgets.QApplication(sys.argv) 
    affichepdf = Affichepdf("fichier_pdf_a_afficher.pdf", 'pdfjs/web/viewer.html') 
    affichepdf.show() 
    sys.exit(app.exec_())

Mais je préfèrerais bien sûr une solution PyQt5 plutôt qu'un bricolage javascript: j’attends avec impatience!
0  0