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 !

Bientôt un module de lecture de PDF dans Qt ?
Qt PDF utilise la bibliothèque PDFium de Chromium, disponible sous licence BSD

Le , par dourouc05

131PARTAGES

4  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.

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

Avatar de captaindidou
Inactif https://www.developpez.com
Le 04/02/2017 à 22:55
Moralité n'est pas légalité.
Mais ce n'est pas sur la terrain de le moralité que l'on se situe ici. Parler de moralité en matière de justice, c'est impropre.
C'est le mot équité qu'il est approprié. Autrement dit, la question à se poser est : "Y-a-t'il un préjudice, un abus ?"

Je n'en vois pas. Il existe une bib PDF en C++ sous licence BSD. Elle est adaptée pour Qt et commercialisée et éditée sous licence LGPL.

Les faits, ce sont les développements qui constituent la valeur-ajoutée et sont propriétaires. Le code source d'origine n'est pas confisqué.
La liberté de chacun de réaliser un développement similaire est intacte.

Aucune préjudice pour personne :
- la licence BSD est respectée. Elle est à ce propos, compatible avec GPL.
- la liberté des utilisateurs d'utiliser et modifier est préservée.
3  0 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 09/02/2017 à 9:14
Bonjour,

Côté moral, je ne vois pas exactement (même si je sais) pourquoi cela entre en compte. J'estime que celui qui fait le projet/bibliothèque choisit la licence en connaissance de cause (car oui, le choix de la licence est important et ne doit pas se faire n'importe comment, même si nous ne sommes pas tous des juristes). Du coup, le choix de la BSD est :
  • je veux que mon projet soit utile pour tous (et réutilisé) (même si c'est commercial) ;
  • je veux tout de même une reconnaissance, même minime de mon travail (fichier de licence).

C'est comme ça, que je résumerai (même si c'est un peu hatif).
Du coup, ce n'est pas à nous, membres externes du projet de dire : "ce n'est pas moral". Car finalement, c'est l'auteur qui a choisit que ce soit ainsi (altruisme ).
1  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 04/02/2017 à 21:28
Bonsoir,
en fait ils prennent un code BSD, le modifie, et mettent une partie en commercial et LGPL. Ils ont le droit de faire cela ? je veux dire en commercial c'est ok, en BSD aussi mais restreindre un truc qui a la base est en BSD pour le mettre en LGPL.
Si quelqu'un peut m'expliquer la moralité du truc.
Bonne soirée
0  0 
Avatar de dourouc05
Responsable Qt & Livres https://www.developpez.com
Le 06/02/2017 à 10:12
De ce que j'ai vu, ils ne reprennent pas le code de PDFium, ils construisent une couche d'abstraction par-dessus — PDFium étant utilisé comme bibliothèque. Si mes souvenirs sont bons, selon la GPL, c'est toujours un travail dérivé (donc à distribuer sous GPL, une licence "libre" ; par contre, d'un point de vue moral, ça me semble justifiable, sans problème.
0  0 
Avatar de koala01
Expert éminent sénior https://www.developpez.com
Le 09/02/2017 à 3:10
Salut,
Citation Envoyé par archqt Voir le message
Bonsoir,
en fait ils prennent un code BSD, le modifie, et mettent une partie en commercial et LGPL. Ils ont le droit de faire cela ? je veux dire en commercial c'est ok, en BSD aussi mais restreindre un truc qui a la base est en BSD pour le mettre en LGPL.
Si quelqu'un peut m'expliquer la moralité du truc.
Bonne soirée
Je viens de relire le texte de la licence BSD (on le trouve, entre autres -->ICI<<-- ) et elle est très claire : tu en fais du truc sous BSD (la bibliothèque, en l'occurrence) strictement ce que tu veux. La seule restriction est que la notice concernant la licence (de la bibliothèque que tu utilise) doit l'accompagner "partout ou elle ira"

Tu voudrais même l'utiliser -- sous quelle que forme que ce soit -- pour une application vendue à 10000$ pièce, c'est ton droit le plus stricte du point de vue légal

On peut se poser la question de savoir si c'est "sympa" ou "moral" de le faire, surtout si une grande partie de ton projet est basé exclusivement sur des trucs sous licence BSD, mais, si ca ne t'empêche pas de dormir la nuit, c'est en tout cas suffisamment sympa et moral pour que tu puisse "faire avec", et c'est tout ce qui compte en définitive
0  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 09/02/2017 à 15:37
Bonjour,
qu'ils fassent du commercial avec du code en licence BSD je suis d'accord MAIS qu'ils laissent le nouveau code en BSD. La ils le mettent en commercial + LGPL. Donc pour celui qui veut faire du commercial c'est plus compliqué quelque part, même si c'est faisable avec une liaison statique sans fournir le code.
Ils auraient pu le laisser en licence BSD, même s'ils ont le droit de le faire.
Bonne fin de journée
0  0 
Avatar de koala01
Expert éminent sénior https://www.developpez.com
Le 09/02/2017 à 20:20
Je peux me tromper, mais, à ma connaissance, Qt n'a jamais touché à la licence des bibliothèques externes qu'elle utilise, à moins, bien sur, d'en avoir réécrit le code.

Je n'ai pas les sources pour vérifier, mais, si tu prend le plugin jpeg ou le plugin png, par exemple, qui ne font que permettre de disposer de ces bibliothèques lorsqu'elles ne sont pas déjà installées (dans leur version dev) sur l'ordinateur, il me sembles qu'ils suivent exactement la licence de la version d'origine.

En fait, c'est assez paradoxale ce genre de truc, car je crois que la distinction est encore plus (floue ? / précise ?) dans le sens où le code source de la bibliothèque reste sous sa licence d'origine alors que le "packaging" (le fameux qt-libgpeg-plugin suit la politiqu de licence de Qt. Comme je l'ai dit, je n'ai pas de quoi vérifier ici, mais il me semble que c'est quelque chose du genre

Sans oublier que, au final, c'est sans doute plus compliqué que cela (obligation de lier statiquement dans un projet commercial), dans le sens où tu n'accédera sans doute jamais directement aux fonctionnalités spécifiques de la bibliothèque : tu n'utiliseras normalement que... les fonctionnalités exposées par les classes fournies par Qt, qui feront appel à cette bibliothèque ( c'est le fameux "packaging" dont je viens de parler)

Mais, de toutes façons, toi tu utilises Qt, en version dynamique ou statique selon ton gout. Et si, par l'utilisation d'une bibliothèque dont la licence entrerait en conflit avec les propres licences utilisées par Qt, c'est à Qt à faire en sorte de n'autoriser que l'utilisation des bibliothèques statiques si il y a lieu

Il me semble (la dernière fois que j'ai vu une version commerciale remonte à pas mal de temps) qu'il y a "presque de tous temps" eu des éléments qui n'étaient accessibles qu'en version statiques lorsqu'ils étaient utilisés dans la version commerciale
0  0 
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