MagPI 12 Page 19

De Le French MagPi
Aller à : Navigation, rechercher

xhtml2pdf. Installez-les avec le classique apt-get install :

sudo apt-get install python-cups python-pip python-dev

Puis installez xhtml2pdf avec pip :

sudo pip install xhtml2pdf

Cette dernière étape va prendre un certain temps car elle va télécharger et compiler des bibliothèques supplémentaires.


xhtml2pdf peut à présent être utilisé en ligne de commande pour convertir une page HTML en fichier PDF. Vous pouvez essayer avec des pages web enregistrées mais ça ne fonctionnera souvent qu'en partie à cause de la présence fréquente de Javascript qui n'est pas restitué par xhtml2pdf. Je conseille à la place de créer les pages en HTML standard.


Le script ci-dessous liste les imprimantes disponibles puis imprime sur la première trouvée. Cet exemple montre comment ajouter le support de l'impression à vos propres programmes. Si vous souhaitez l'inclure dans vos applications, vous devrez alors ajouter des tests d'erreurs supplémentaires ainsi qu'un moyen pour permettre à l'utilisateur de choisir une imprimante (s'il y en a plusieurs installées).


Les lignes 4 et 5 importent les bibliothèques cups et xhtml2pdf (notez que cette dernière est importée sous son ancien nom pisa et c'est ainsi que nous y ferons référence plus tard).


Les lignes 11 à 14 produisent un peu de texte en HTML. Alors que les en-têtes HTML et la section head pourraient être ajoutées, ce qui devrait être fait dans une page normale, j'ai juste mis le contenu de la section body, ce qui est suffisant pour xhtml2pdf. Nous utilisons ensuite CreatePDF ligne 16 pour le convertir en un fichier et l'enregistrer sous le nom spécifié par la variable “filename”.

J'ai placé ici un test basique en cas d'erreur PDF car du HTML invalide peut faire échouer la conversion. C'est uniquement un message d'erreur générique que vous pouvez perfectionner dans vos programmes.


La ligne 19 est très importante. Le fichier doit être fermé pour que l'écriture réussisse et qu'il soit à nouveau possible de lire le fichier. Sans ça, rien ne s'affichera, et dans mon cas j'ai perdu un temps fou à m'arracher les cheveux pour essayer de comprendre ce qui n'allait pas.


Nous créons une connexion vers CUPS et appelons l'instruction getPrinters pour obtenir une liste des imprimantes disponibles. J'ai délibérement mis l'instruction print ligne 27, c'est la façon standard en Python d'afficher une ligne de texte sur stdout (l'écran). Ça n'a rien à voir avec l'envoi de données vers l'imprimante, ne faites pas la confusion.


Enfin, lignes 29 et 30, nous sélectionnons la première imprimante et lui envoyons le fichier en utilisant l'instruction printFile.


Lors de la création du script, vous devez lui donner un nom qui n'entre pas en conflit avec l'un de ceux des fichiers de bibliothèques importés. Par exemple, n'appelez pas le script “cups” car il y aurait conflit avec la bibliothèque cups. J'ai utilisé cupsprint.py pendant mes tests.


Cela vous a montré l'une des façons d'ajouter l'impression dans vos propres applications Python. Elle a été choisie car elle est facile à implémenter et peut être employée aussi bien pour des applications en ligne de commande et des serveurs que pour des applications graphiques. À vous ! Quels sont vos projets qui doivent pouvoir imprimer ?

  1. Impression de fichier
  2. Nom pour un fichier temporaire
  3. génération du contenu
  4. Test d'impression
  5. Ceci est imprimé depuis une application Python
  6. De couleur rouge grâce aux CSS
  7. Ferme le fichier PDF sans quoi sa lecture sera impossible
  8. imprime le fichier avec CUPS
  9. Récupère la liste de toutes les imprimantes
  10. Affiche le nom des imprimantes sur stdout (écran)
  11. Prend la première imprimante de la liste
  12. Impossible de créer le fichier pdf
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils