Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Black Friday: -25€ dès 75€ sur les livres en ligne, vidéos... avec le code BWEEK25. J'en profite !
  1. Livres et vidéos
  2. Python 3
  3. Génération de contenu
Extrait - Python 3 Traitement de données et techniques de programmation
Extraits du livre
Python 3 Traitement de données et techniques de programmation
2 avis
Revenir à la page d'achat du livre

Génération de contenu

PDF

1. Présentation

a. Format PDF

PDF est le sigle de Portable Document Format qui est un format de document utilisant un langage de description de page qui est PDL (sigle de Page Document Language) et un protocole d’impression non dépendant d’un constructeur qui est une évolution de Postscript. Il est devenu progressivement le standard pour l’impression des documents et est devenu une norme ISO.

Aujourd’hui, de très nombreux formats de données (textes, dessins, images…) proposent des fonctionnalités d’export vers PDF.

b. Avantages

Ses qualités principales sont :

  • la concordance entre l’affichage à l’écran et ce qui sera réellement imprimé ;

  • son indépendance par rapport au système d’exploitation ;

  • son indépendance par rapport au matériel ;

  • la présence de logiciels ou bibliothèques libres pour ce format ;

  • la très grande diffusion de lecteurs de documents PDF, dont certains sont libres.

c. Inconvénients

Les inconvénients sont de plusieurs ordres :

  • Les droits liés à chaque document dépendent à la fois de ceux liés au format, mais également à ceux liés à tout ce qui est contenu dans le document, à savoir les droits d’auteurs sur les textes, les images embarquées, mais également les polices embarquées.

  • L’évolution du format est majoritairement liée à la politique d’un seul éditeur.

d. Présentation de la bibliothèque libre

ReportLab est une bibliothèque externe écrite en Python qui offre des outils simples et performants pour générer des documents PDF. Cette bibliothèque est maintenue par un éditeur qui propose deux branches, dont une à destination de la communauté qui est celle que nous allons utiliser.

Elle est portée sous Python 3, plus précisément à partir de Python 3.3, et voici le dépôt de code : https://github.com/nakagami/reportlab

2. Bas niveau

a. Bibliothèque de données

La première chose pour créer un document est d’avoir des données préfabriquées. En effet, il est agréable d’avoir des formats tout prêts correspondant...

OpenDocument

1. Présentation

Soyons clairs dès le départ. OpenDocument est un format de document, partagé par tous les éditeurs de logiciels de bureautique dignes de ce nom. Ce format a été élaboré minutieusement, négocié par les éditeurs qui ont été partie prenante de ce processus. OpenDocument est donc un format qui est censé être partagé par tous les logiciels de bureautique. On ne parle donc pas dans cette section de LibreOffice (la suite bureautique de référence), mais bien d’un format de document universel.

Et à ce niveau-là, le format est assez simple à comprendre. Il s’agit, concrètement, d’un simple fichier compressé au format ZIP et contenant de gros fichiers XML parmi lesquels on trouve content.xml, qui comprend en son sein tout le contenu du document et le format utilisé, incluant le style). Un autre fichier, style.xml, détaille chacun des styles personnalisés du document.

On peut donc accéder au contenu d’un fichier OpenDocument simplement en le dézippant et en utilisant XPath pour le traverser.

Nous allons présenter ici des méthodes de haut niveau pour générer des documents de type OpenDocument, et pour ce faire la référence est ce site : http://www.opendocumentformat.org/developers/

2. ezodf2

a. Installation

La bibliothèque idéale pour générer un document au format OpenDocument...

Travailler avec des images

1. Représentation informatique d’une image

Lorsque l’on pense image, on pense photographie et donc image bitmap qui, comme son nom l’indique, est une organisation d’octets. L’image a une taille fixe et une résolution donnée qui fait que l’on peut considérer une image comme trois tableaux statiques superposés d’octets, un pour le rouge, un autre pour le vert et un dernier pour le bleu, chaque case du tableau ou point de l’image portant donc comme valeur un 3-uplet d’octets.

Ceci correspond à ce que l’on appelle une image matricielle et est le type d’image le plus commun. C’est ce type d’image que prend un appareil photo, par exemple. En paraphrasant le paragraphe ci-dessus, on peut voir une image comme trois matrices superposées, chaque valeur étant un octet, ou comme une seule matrice de 3-uplets d’octets.

Si d’un premier abord la différence ne saute pas forcément aux yeux, ces façons de voir sont importantes car elles déterminent le contenu des algorithmes.

Ces images sont parfaitement adaptées à une utilisation informatique et à une restitution sur un écran d’ordinateur, puisque les trois composantes, rouge, verte et bleue sont celles de la synthèse additive. C’est-à-dire que l’addition des couleurs donne la couleur blanche et l’absence combinée des trois mêmes couleurs correspond au noir.

Au contraire, la reprographie nécessite d’utiliser la synthèse soustractive, celle qui est à l’œuvre lors des mélanges de pigments (ou de peinture) et qui est un peu plus connue du grand public. Le mélange de magenta et de cyan donne du violet, magenta et jaune de l’orange, jaune et cyan du vert et le mélange des trois donne du marron. Dans la synthèse soustractive, il est très difficile d’obtenir du noir et les niveaux de gris, il faut donc des pigments supplémentaires. C’est la raison pour laquelle la représentation CMJN (cyan, magenta, jaune, noir) a été conçue.

La représentation d’une telle image destinée à la reprographie nécessite donc non plus un 3-uplet, mais un 4-uplet pour chaque pixel ou 4 matrices au lieu de 3 pour l’image...