Nous sommes le Mar 22 Juil, 2014 16:25
Supprimer les cookies

Correction de mon français: page Pdf2image

Tout ce qui est un peu hors-sujet mais qui peut se partager...

Ven 02 Nov, 2012 00:56

Salut,

je vois, qu'il n'y a pas trop de bruit dans ce forum. Peut-être vous pouvez m'en fournir un peu en corrigeant mon mauvais Français (de nouveau). Il s'agit d'un texte que j'ai fabriqué pour mon nouveau site; le document est ici: Pdf par image. Ma correctrice n'est pas disponible à cette heure là (00:52) mais je suis curieux et impatient de savoir, si j'ai fait des progrès... 8-)

Merci d'avance.

http://www.souris-libre.fr
http://www.uplawski.eu
«La joie naît de se sentir en harmonie avec la symphonie universelle. Nous sommes d’abord des êtres humains, et je ne veux pas que l’on m’appelle consommateur !» (Pierre Rabhi, Novembre 2010)
versleouest

Avatar de l’utilisateur
Messages : 117
Géo : France, Basse-Normandie, Canton Carrouge

Ven 02 Nov, 2012 07:53

Salut,

Alors voilà. J'ai corrigé les mots en rouge. Parfois, tu verras deux mots en rouge et qui étaient pourtant écrits correctement. Je les ai mis en rouge parce que j'ai supprimé une virgule ou un mot qui se trouvait entre ces deux mots.

Je n'ai pas donné d'indications expliquant les fautes de français, ayant pensé que tu comprendrais la plupart des erreurs. Cela dit, n'hésite pas à poser des questions.

J'ai supprimé le code pour alléger le message.

Je n'ai jamais utilisé GhostScript. Il est donc possible que certaines erreurs d'interprétations m'aient passé sous le nez.
__________

Linux: Exporter un document PDF en image(s)

J'explique comment les pages d'un document PDF peuvent être transformées en images, afin de les changer et éventuellement convertir de nouveau en PDF. Pour l'instant, j'ignore complètement les méthodes disponibles sur les systèmes d'exploitation de Microsoft™ et me concentre sur Linux. Notez, quand même, que la procédure et les mêmes logiciels sont disponibles aussi pour MS-Windows™.

À la fin des explications, je fournis un script shell, qui sert à automatiser la production des images de plusieurs types à partir d'un fichier PDF. Le script centralise les méthodes auparavant présentées.

Notez que vous pouvez cliquer sur les petits images pour en voir une version agrandie.
Pourquoi transformer PDF en images ?

À ce jour, je connais deux bonnes motivations:

Afin de rendre difficile la copie des parties du contenue textuel d'un document. On profite du fait que l'image ne contient aucune police et le texte n'est plus séparable que par des moyens graphiques.
Afin de rendre un fichier énorme moins grand, peut-être parce qu'on veut l'envoyer par mail. Ceci concerne d'abord des PDFs qui contiennent déjà des grandes images. On peut alors essayer de réduire la taille de toutes les images et ensuite créer de nouveau le PDF. La méthode proposée nous permet de conserver tous les détails du formatage du fichier d'origine.

Et deux autres dont je vous laisse juger :

Afin de comprendre comment ça marche, par curiosité.
Afin de comprendre qu'un document PDF n'est pas a priori "sécurisé" contre le vol ou la falsification des informations. Notez bien que ce n'est pas une contradiction à la première motivation mentionnée précédemment.

Inconvénients :

La plupart des documents PDF qui circulent sont acceptés dans leurs états actuels et les fichiers de ce type ne sont généralement pas considérés comme modifiables. Pour les modifier, il faut en effet faire un petit effort.

Les documents PDF créés à partir des images ne contiennent normalement pas de sommaire. C'est la structure arborescente qui, dans un lecteur PDF, si elle existe, apparaît à gauche du contenu. Si le document original contient le sommaire, celui-ci est perdu pour la version que nous pouvons dériver par le biais d'images.

Les logiciels disponibles pour la manipulation des documents PDF ne sont pas très connus ou considérés compliqués, chers et normalement réservés aux "experts". Je souhaite cependant changer votre avis sur le sujet (entre autres) avec cette petite introduction. Commençons avec les pré-requis.

Pré-requis

Pour la conversion d'un PDF en image, vous avez besoin de l'outil "GhostScript", pour la transformation des images en PDF du paquet "LibTiff". Vérifiez que les logiciels sont installés, soit en les exécutant simplement une fois sur une ligne de commande, soit au moyen du système de gestion de paquetages (dpkg, aptitude, synaptic, rpm, emerge ...). S'il faut encore installer l'un ou l'autre logiciel, toutes les distributions Linux actuelles les fournissent. Profitez de nouveau de votre système de gestion de paquetages.

GhostScript

C'est le seul logiciel qui est automatiquement évoqué quand on veut traiter ou transformer des fichiers PDF. D'autres outils existent, -comme "pdftk"-, et ils font un travail merveilleux, mais ils ne jouent pas le même rôle. En vérité, GhostScript est un "interpréteur" du langage "PostScript™" qui sert à communiquer avec les imprimantes (qui comprennent encore ce langage). Le format PDF, "à l'intérieur", est décrit dans un autre langage qui est proche du PostScript et dérivé du dernier. GhostScript maîtrise les deux et est ainsi capable d'envoyer des données, codées en PostScript ou PDF à une imprimante.

Vérifiez que GhostScript est installé en exécutant la commande gs:

Si le résultat ressemble à ce que vous voyez ci-dessus, c'est bon. Tapez "quit" pour quitter l'interpréteur:

LibTiff

Ce paquet est très utile, entre autres, pour la création des PDFs à partir des images. Sans parler d'une bibliothèque de programmation, qui ne nous concerne pas, avec LibTiff, on dispose de nombreux petits logiciels utilitaires pour une diversité des tâches. On va se concentrer sur deux tâches :

tiffcp
pour assembler un document de plusieurs pages à partir des images séparées.
tiff2pdf
pour la création d'un nouveau document PDF.

Vérifiez de nouveau que les deux commandes sont disponibles en les exécutant simplement une fois sur une ligne de commande. Normalement, si l'une est là, l'autre l'est aussi:

Bon, ça roule.

Contexte technique

"Ce qu'on envoie à une imprimante", on peut l'envoyer ailleurs aussi... Les systèmes de la famille Unix/Linux gèrent des imprimantes et d'autres appareils périphériques au moyen de fichiers spéciaux. "Envoyer quelque chose à un appareil périphérique" signifie habituellement écrire des données dans un fichier. Ben, alors... On remplace le fichier "spécial" d'une imprimante par un fichier aléatoire et on trouve ensuite les résultats du travail de GhostScript dans ce fichier. J'ai remarqué que la simplicité de cette idée pose des problèmes aux gens qui ont l'habitude de considérer la communication entre ordinateur et périphérique comme un mystère qui ne les concerne pas, du moment que ça fonctionne. La démystification est plus désagréable que le constat de l'opacité d'une technologie.

Désolé, mais à la fin de ce document, vous allez comprendre des choses.

Manuels en ligne

Si tout ce qu'on peut faire avec les outils mentionnés vous intéresse, consultez les manuels en ligne, fournis automatiquement avec chaque logiciel, une fois celui-ci installé. Quand même, soyez prévenus qu'on n'a pas besoin de tout savoir pour tout faire et qu'il est souvent mieux de se souvenir où c'est expliqué. Comme c'est pratique courante sous Linux, accédez au manuel de GhostScript en exécutant la commande man gs. Extrait:

De la même manière, pour voir les manuels de tiffcp et tiff2pdf, les commandes sont man tiffcp et man tiff2pdf.

Transformer un PDF en images

Enfin à l'action. On va donc exécuter GhostScript et régler certains paramètres relatifs au nom et au traitement des fichiers. Pour l'exemple, un PDF de 9MB est transformé en image. Vous n'avez pas besoin de le télécharger. 9MB, c'est vraiment beaucoup : plan.pdf.

Voici d'abord la ligne de commande qui exécute GhostScript, dont j'explique les détails après :

Voici le démontage de cette ligne:

gs
On exécute GhostScript comme montré plus haut.
-sDEVICE
C'est ici que la conversion en image est spécifiée. "Device" veut dire "appareil" et on pourrait indiquer une imprimante comme destination des données. Cependant, j'ai choisi tiffscaled24 afin de créer des images en format tiff, qui contiennent un maximum de couleurs et dont les dimensions correspondent exactement à celles de la page originale du PDF.
Il y a un grand choix de valeurs alternatives pour -sDEVICE. Si elles vous intéressent, cherchez dans la documentation ou consultez cette page web (anglais): Details of GhostScript output devices
-r
La résolution des images produites. La valeur 600x600 va produire des images qu'on peut facilement manipuler sans perdre trop de qualité. Mais les fichiers produits sont aussi très larges. On peut expérimenter pour trouver la résolution optimale.
-sPAPERSIZE
La taille des pages, transformées en images. Ici, toutes les images sont dimensionnées en Din A4.
-sOutputFile
On demande que les images soient nommées résultat0001.tif, résultat0002.tif etc. Les symboles "%04d" indiquent ainsi que la numérotation sera en 4 chiffres, zéros en tête.
-dNOPAUSE
GhostScript s'arrête après l'impression de chaque page d'un document et attend une invitation à continuer. Parce que nous n'imprimons pas sur une imprimante mais "dans un ficher", cette pause nous est inutile. Alors nous la supprimons.
--
Les deux traits d'union signalent que GhostScript peut se fermer après avoir transformé tout le document PDF. Autrement, le logiciel resterait en mode interactif. Il faudrait donc taper quit explicitement afin d'arrêter GhostScript. Nous nous épargnons cette étape.
plan.pdf
Le fichier à transformer.

Résultats

Je vous présente ce qui se passe en réalité sur l'écran, après l'exécution de gs.

Évidemment, le PDF ne contient qu'une seule page. On trouve alors à côté du fichier d'origine un nouveau fichier plan0001.tif. Ce fichier contient une image en format "Tiff" et est probablement beaucoup plus grand que le PDF. Dans le cas exemplaire du fichier plan.pdf, mon Tiff a la taille imposante de 100MB. Je trouve ça beaucoup trop grand.

Pour réduire la taille du fichier Tiff, j'adapte la résolution dans la commande et l'exécute encore une fois:

Cette fois ci, la taille de la nouvelle image n'est que de 26MB. Ça peut être bon ou pas assez bon. Vous pouvez expérimenter plus avec d'autres résolutions. Si, ensuite, vous désirez produire de nouveau un fichier PDF à partir de l'image, sachez qu'on peut le compresser afin de rendre le PDF beaucoup plus petit. De toute façon, une fois l'image créée, vous pouvez la modifier dans n'importe quel logiciel de graphisme.

Transformer des images en PDF

La création d'un document PDF à partir de l'image est assez simple, surtout parce qu'il s'agit d'un document en une seule page. Il suffit d'exécuter tiff2pdf avec le nom de l'image et le nom du nouveau fichier PDF comme paramètres:

utilisateur@machine:~$ tiff2pdf -z -o plan_2.pdf plan0001.tif

L'explication de la commande:

-z
Ce paramètre provoque la compression de l'image avec l'algorithme "zip".
-o
C'est l'option qui indique que le fichier suivant sera généré.

Notez qu'aucune option ne précède le fichier Tiff (plan0001.tif).

Vous allez remarquer qu'avec une image de 26 MB, le fichier PDF est encore très grand. Moi, j'ai réduit la résolution de l'image jusqu'à 180x180 dpi, ce qui me donne d'abord un fichier Tiff de 9 MB et ensuite un PDF de 3.4 MB.

PDFs de plusieurs pages

Comment faire si le document d'origine contenait déjà plusieurs pages ou si on veut en ajouter dans le nouveau PDF ?

Dans l'exercice suivant, je propose un nouveau PDF original, qui ne contient pas d'images mais du texte. C'est le manuel de mon outil "Crème Fraîche": CremeFraicheGUI.pdf. Ce fichier contient huit pages, ce qui est confirmé pendant la transformation avec GhostScript:

Le résultat donnera huit nouvelles images (ici, la résolution 300x300 dpi était choisie):

Notez que, dans chacune de ces images, le contenu d'une page du document d'origine est reproduit.

Disons que je veux façonner le titre sur la première page pour la rendre plus attrayante. Je modifie alors le fichier CremeFraicheGUI_0001.tiff comme indiqué sur la découpure à droite. Avant la transformation en PDF, il faut maintenant assembler toutes les pages, c'est-à-dire tous les fichiers Tiff dans un seul fichier. C'est là que l'outil tiffcp devient utile:

Au lieu d'utiliser une liste de tous les fichiers Tiff, je profite du fait que tiffcp connaît le caractère générique "*" (astérisque). Comme ça, la commande est vite tapée. Le résultat est un nouveau fichier Tif d'une taille qui correspond à nos attentes (voir copie d'écran à droite). Le nouveau fichier "nouveau.tiff" contient huit "calques", un pour chaque page. La conversion en PDF se fait enfin à partir de ce fichier, comme avant, en exécutant tiff2pdf:

Le document final "CremeFraicheGUI_2.pdf" contient toutes les pages de l'original, avec les changements suivants:

Le nouveau PDF est plus grand, car le texte et les polices sont remplacés par des pixels noircis, ce qui prend plus de place.
Les couleurs du titre sur la première page sont modifiées.
Aucune police n'est encastrée dans le document.

Vous pouvez télécharger le document final ici: CremeFraicheGUI_2.pdf ou comparer avec l'original: CremeFraicheGUI.pdf

Si la résolution du résultat ne vous convient pas, souvenez vous que vous pouvez la varier en passant l'option "-r" à GhostScript.

Script shell

D'accord, il peut être difficile de se souvenir des diverses options de GhostScript. Je vous fait cadeau d'une information de plus: GhostScript peut générer d'autres types d'image que Tiff en variant la valeur du paramètre -sDEVICE.

Sans vouloir me répandre sur les qualités du scripting, je vous donne un exemple qui sert à faciliter l'utilisation de GhostScript pour la transformation des PDFs en images de divers types. Vous pouvez l'exécuter simplement avec le fichier PDF d'origine comme seul paramètre:

Dans ce cas, le script ne fait rien d'autre que notre longue ligne de commande ci-dessus. Pour varier le type d'images créées, ajoutez-le comme premier paramètre:

Attention ! Avec d'autres types de fichiers, la conversion en PDF est incommode ! Si vous avez l'intention de transformer les images de nouveaux en PDF, restez avec Tiff. Le script peut cependant générer des images Tiff, Jpeg, PGM, PNG, PCX et BMP.

En haut du script, quelques variables peuvent être adaptées à vos besoins:

TYPE
Le type d'image par défaut. Si vous n'indiquez pas le type d'image à générer, il est déterminé par la valeur de cette variable.
DEV
La valeur par défaut pour le paramètre -sDEVICE de GhostScript. Veillez à ce que DEV et TYPE correspondent et notez que, pour le même type d'images, DEVICE peut prendre différentes valeurs.
RES
La résolution des images produites.
PAPER
La taille de l'image. Normalement, A4 est une taille convenable.
GS
Le chemin d'accès du fichier exécutable de GhostScript "gs".

Voici le script: print_to_image. Sauvegardez le fichier sous un nom comme "print_to_image" et rendez-le exécutable.
Nous sommes libres. Wir sind frei. We are free. Somos libres. Siamo liberi.
shokin

Avatar de l’utilisateur
Messages : 166
Géo : Suisse

Ven 02 Nov, 2012 14:58

Alors là..., ;-)
Ça me laisse sans voix. Tu a été super-vite pour corriger et je te remercie. Maintenant quand je lis ta version, je ne remarque pas mes propres fautes et tout est compris. Il faut que je compare les corrections à mon original pour mieux en profiter. La version corrigée sera publiée ce soir ou un peu plus tôt.

À bientôt,

Michael.
«La joie naît de se sentir en harmonie avec la symphonie universelle. Nous sommes d’abord des êtres humains, et je ne veux pas que l’on m’appelle consommateur !» (Pierre Rabhi, Novembre 2010)
versleouest

Avatar de l’utilisateur
Messages : 117
Géo : France, Basse-Normandie, Canton Carrouge

Ven 02 Nov, 2012 19:57

Quelle honte... :oops:
«curieux et impatient de savoir, si j'ai fait des progrès». De quoi j'ai parlé dans mon premier message...

Ce qui me frappe d'abord c'est mes fautes d'inattention, dont l'élimination n'a rien à faire avec «progrès». Il suffirait d'appliquer ce que je sais déjà et j'arriverais à produire des textes trois fois mieux que ce truc là. Shokin, comment t'as pu supporter cette correction ?! Depuis quatre jours, ma femme répété que «image» est féminin. Maintenant je constate que je me suis souvenu dans environ la moitié des cas. Après cette expérience, je veux expliquer que j'ai douze ans et fait le Français depuis six mois. Malheureusement c'est loin de la vérité.

Shokin, j'espère que tu ne t'as pas fait l'opinion que je me moque du forum avec ma demande.

Et merci de nouveau pour ton aide.
«La joie naît de se sentir en harmonie avec la symphonie universelle. Nous sommes d’abord des êtres humains, et je ne veux pas que l’on m’appelle consommateur !» (Pierre Rabhi, Novembre 2010)
versleouest

Avatar de l’utilisateur
Messages : 117
Géo : France, Basse-Normandie, Canton Carrouge

Ven 02 Nov, 2012 23:15

Bah ! après six mois d'apprentissage, c'est déjà fort bien écrit.

Il y a des mots que l'on écrit parfois correctement, parfois incorrectement. C'est compréhensible, comme pour toute personne qui apprend à écrire une nouvelle langue.

Comment suis-je arrivé à "supporter" cette correction ? En fait, j'ai l'habitude. Je donne des cours de mathématique, français et allemand. :mrgreen: Et lire des textes ne me rebute pas. Après tout, ton texte est bien plus court qu'un roman (de Victor Hugo, par exemple).

Il m'arrive aussi de faire des fautes en français. Errare humanum est. Parfois, nous n'avons pas le temps de relire le texte.

Au fait, quelle langue parles-tu ? allemand ? :mrgreen:

Si tu veux, tu m'envoies ton adresse électronique par message privé et je t'envoie des fichiers pour apprendre le français, qui n'est pas une langue si facile, surtout pour les personnes dont ce n'est pas la langue maternelle. Il y a des élèves qui demandent pourquoi un mot s'écrit ainsi et je dois alors faire des recherches sur l'histoire du mot (étymologie) ou répondre que c'est ainsi et pas autrement. :lol:
Dernière édition par shokin le Dim 11 Nov, 2012 16:56, édité 1 fois au total.
Nous sommes libres. Wir sind frei. We are free. Somos libres. Siamo liberi.
shokin

Avatar de l’utilisateur
Messages : 166
Géo : Suisse

Sam 03 Nov, 2012 21:32

shokin a écrit:Bah ! après six mois d'apprentissage, c'est déjà fort bien écrit.


Justement.., c'est loin de la vérité. J'ai fait.., attends. Sept (7) ans de français à l'école. Après une pause de environ dix ans j'ai commencé de venir en vacances en France. Depuis six ans je suis marié à une Française (évidemment) et depuis deux ans je vis en France. Non, ma performance était un véritable échec.., j'ai même oublié de simplement conjuguer des verbes en indicatif !

Ben. Je vais énerver Madame un peu plus avec les corrections de mes textes.

shokin a écrit:Au fait, quelle langue parles-tu ? allemand ?


C'est exact.
Merci pour ta proposition. Même si je ne veux pas en profiter pour le moment, je crois qu'avec l'URL de mon site t'as déjà accès à mes adresses mails.

Cheerio et bon dimanche,

Michael.
«La joie naît de se sentir en harmonie avec la symphonie universelle. Nous sommes d’abord des êtres humains, et je ne veux pas que l’on m’appelle consommateur !» (Pierre Rabhi, Novembre 2010)
versleouest

Avatar de l’utilisateur
Messages : 117
Géo : France, Basse-Normandie, Canton Carrouge

Dim 04 Nov, 2012 03:03

Willkommen bei uns ! :mrgreen: Ich mache auch Fehler, wenn ich auf Deutsch schreibe.

Si jamais, on dit plus souvent "J'ai commencé à parler français."

Bah ! nous n'arrêtons jamais d'apprendre. A mon avis, ce n'est ni un échec ni une réussite, puisque ce n'est pas définitif.

Il faudra que je visite Berlin (et d'autres villes en Allemagne). On m'en a dit beaucoup de bien.
Nous sommes libres. Wir sind frei. We are free. Somos libres. Siamo liberi.
shokin

Avatar de l’utilisateur
Messages : 166
Géo : Suisse

Dim 04 Nov, 2012 20:01

shokin a écrit:Il faudra que je visite Berlin (et d'autres villes en Allemagne). On m'en a dit beaucoup de bien.

Là je ne peux pas te renseigner, car j'ai toujours détesté.., pas la ville de Berlin, mais presque tout ce qu'elle représente. Ce qu'on dit de bien de Berlin ne correspond probablement pas à mes réserves. Alors ne te laisse pas arrêter.
«La joie naît de se sentir en harmonie avec la symphonie universelle. Nous sommes d’abord des êtres humains, et je ne veux pas que l’on m’appelle consommateur !» (Pierre Rabhi, Novembre 2010)
versleouest

Avatar de l’utilisateur
Messages : 117
Géo : France, Basse-Normandie, Canton Carrouge

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit