Téléchargé 23 fois
Vote des utilisateurs
0 
0 
Détails
Licence : Non renseignée
Mise en ligne le 22 janvier 2011
Plate-formes : Linux, Windows
Langue : Français
Référencé dans
Navigation

Imprimer des étiquettes autocollantes en passant par un fichier PDF

Dans le cadre d'un projet écrit en PyQt4, j'avais plusieurs impressions d'étiquettes à faire et j'ai fini par mettre au point le code suivant.

La particularité, c'est que le programme n'imprime pas lui-même : il crée des fichiers PDF. Cela permet de vérifier visuellement ce qui va être imprimé et on laissera le visualiseur PDF utilisé (Acrobat Reader ou autre) imprimer lui-même.

Ce code est multiplateforme (au moins Windows et Linux).

Le code

L'impression et l'affichage des étiquettes est présenté sous forme de classe.

Les principales données à passer à l'instanciation de la classe sont :

  • etiq : liste des chaines, éventuellement multilignes (avec os.linesep) et en Unicode :
    • par exemple : [u”nom1 prénom” + os.linesep + u”rue” + os.linesep + u”ville”, u”nom2 prénom” + os.linesep + u”rue” + os.linesep + u”ville”] ;


  • deph : point de départ en mm à partir du bord gauche de la feuille ;
  • pash : pas horizontal en mm entre deux étiquettes ;
  • nbeh : nombre d'étiquettes en horizontal ;
  • depv : point de départ en mm à partir du bord supérieur de la feuille;
  • pasv: pas vertical en mm entre deux étiquettes ;
  • nbev : nombre d'étiquettes en vertical ;
  • font: police de caractères à utiliser de type QFont (voir l'exemple en bas de page).



D'autres données peuvent être modifiées (voir le code auto-documenté).

Voilà le code proposé avec son exemple d'application. Vous pouvez l'essayer avec un simple copier-coller dans idle, mais il vous faut bien sûr le module PyQt4 installé avant. Et c'est écrit en Python 2.7.

Après impression d'une des pages, vous avez peut-être un écart de positionnement dû à un manque de précision de l'imprimante. La correction est simple. Par exemple, si vous mesurez un pas horizontal de 58 au lieu des 60 voulus, il vous suffit de multiplier les valeurs initiales par 60/58 = 1.034.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique PyQt & PySide

Partenaire : Hébergement Web