Qt 5.11 améliorera la gestion de CUPS pour l'impression sous Linux
Le panneau d'options avancées a été complètement réécrit

Le , par dourouc05, Responsable Qt
CUPS est un système d’impression initialement développé par Apple pour son système d’exploitation, puis libéré et rapidement repris par la communauté Linux. Bien évidemment, Qt peut imprimer via ce système, mais la situation n’est pour le moment pas idéale. Outre un code écrit de manière suboptimale (voir références), le panneau des options avancées n’a jamais été un modèle d’utilisabilité. Présent dans les premières versions de Qt 5, il a d’ailleurs été supprimé en 2012 : il présentait des informations en double qui n’étaient pas synchronisées avec les autres onglets, notamment. La gestion des agrafes automatiques n’était d’ailleurs pas géniale, comme le montre cette vidéo (l’agrafe n’était pas toujours mise au bon endroit).


Avec CUPS, tous les paramètres plus avancés sont décrits dans des fichiers PPD, hérités de PostScript. Heureusement, ces options sont déjà groupées, ce qui facilite l’implémentation d’une interface générique par-dessus les fichiers PPD. De plus, ils peuvent encoder certaines contraintes sur le choix des options : impossible de choisir une qualité photo sur un papier qui n’est pas prévu pour ce mode, par exemple.
Ainsi, l’implémentation spécifique à la plateforme Linux de l’impression dispose maintenant d’une classe pour gérer ces fichiers PPD, QPpdPrintDevice. Elle est utilisée pour afficher le nouveau panneau Avancé, avec un simple parcours du fichier PPD et un modèle arborescent. Les options les plus importantes sont déjà positionnées dans d’autres onglets : elles sont éliminées par un système de liste noire.
Certaines options sont plus particulières, car il faut installer un module spécifique dans l’imprimante : recto-verso, agrafeuse, etc. Les paramètres correspondants n’ont de sens qu’avec ce module physique. Ils sont récupérés spécifiquement auprès de CUPS, dont le rôle est de communiquer avec l’imprimante pour déterminer les modules disponibles.
D’autres correctifs font leur arrivée, comme la mémorisation des paramètres d’une impression à la suivante ou encore la gestion des tailles de page. Les plages de pages à imprimer deviennent complètement arbitraires : on peut donner des listes de pages pas forcément consécutives (page 1, pages 5 à 7, page 42, par exemple). Ce dernier item a été implémenté au niveau de Qt et sera donc disponible sur toutes les plateformes.

Source : Better support for CUPS features in Qt 5.11.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -