Vu ailleurs

Laspic sur  logo diigo
consulter - s'abonner

Recadrer un document PDF multipage

Ou comment ne garder des pages scannées que la surface utile

← Retour vers l'atelier

10 mai 2010,
par Jonathan
Mis à jour le 13 janvier 2011

Mots-clés
Mode d’emploi
Level 2
Numérisation
PDF

4794 lectures
12 commentaires

Contenu mis à disposition sous licence Creative Commons

Cet article a été diffusé
sur le Planet Libre

Il s’agit ici de recadrer un document PDF multipage, par exemple pour réduire des marges démesurées, ou retirer les bandes noires apparues après la numérisation d’un document de petite taille. L’intérêt ? d’abord réduire le poids du fichier (qui contiendra de fait moins d’informations), ensuite pour faire de substantielles économies d’encre en cas d’impression, ou encore améliorer la lisibilité de ces documents sur petits écrans (téléphone, tablettes...). Voici trois méthodes acceptables dénichées au cours de mes pérégrinations, qui ont chacune leurs inconvénients et avantages.

Quelques précisions

Petite mise en garde pour commencer, notre objectif est ici de traiter en une fois toutes les pages de votre document PDF. Le principe est d’appliquer un seul jeu de paramètres à l’ensemble des pages, par conséquent, si votre document n’a pas été à chaque fois positionné à l’identique, alors les coupes ne se feront pas aux bons endroits [1].

Notons ensuite que si quelques outils de recadrage grand public existe [2], leur nature justifie cependant que l’on cherche des solutions alternatives. Tout d’abord parce qu’il ne s’agit pas véritablement de rognage mais plutôt de masquage [3], le document n’est de ce fait pas allégé des informations inutiles. Ensuite, ce recadrage virtuel n’est pas restitué la même manière selon le logiciel utilisé pour lire le document [4], provoquant des erreurs d’affichages problématiques si ce dernier a vocation à être partagé.

Utiliser TheGimp...

Voici une méthode (ici décrite notamment), qui concerne toutes les systèmes sur lesquels TheGimp fonctionne. L’avantage principale de cette solution est qu’elle seule autorise une sélection à la souris de la zone à garder. Par contre, c’est une méthode qui consomme énormément de ressources, rendant quasi-impossible le traitement de fichiers volumineux (à moins d’avoir une machine vraiment puissante et du temps devant soi).

Prérequis

  • TheGimp : pour l’installation, voyez sous Microsoft Windows cette page, ou celle-cii sous Mac OSX. Concernant GNU/Linux, reportez vous aux dépôts de votre distribution. Pour toute aide sur cette étape ce site francophone pourra vous être utile.
  • Imagemagick (ou GraphicsMagick) : sous Mac OSX et sous Microsoft Windows, rendez-vous à la page indiquée, téléchargez le programme et installez-le [5] ; sous GNU/Linux il est très probablement - sous forme de paquet - dans les dépôts de votre distribution.

Mode d’emploi

PNG - 321.4 ko
Recadrage avec l’outil de découpage
  1. Ouvrez le document PDF comme une image classique. Dans la fenêtre d’importation qui s’ouvre : vous choisissez (a priori) de sélectionner tout, et - important - aussi d’ouvrir les pages en tant que calque. Vous validez en laissant le reste tel quel.
  2. Choisissez l’outil de découpage (raccourcis clavier : Maj+C), et sélectionnez la zone utile. Validez en tapant Entrée, voici votre document recadré.
  3. Il est normal que vous ne voyez apparaître que la première page, les autres sont bien présentes en tant que calques non-visibles, et ont été découpées avec le reste du document. À ce sujet, n’oublions pas ce petit réglage sans quoi l’ordre des pages sera sur le résultat final en ordre inversé : dans le menu Calques puis Pile et choisissez Inverser l’ordre des calques.
  4. Enregistrer sous maintenant avec le nom de votre choix, à l’emplacement qui vous convient le mieux sous le format Animation MNG. En effet, si Gimp importer les documents PDF, il ne sait pas les exporter. Nous sommes donc obligés de bricoler pour préserver la forme PDF de notre fichier.
  5. Pour cela, nous utilisons l’outil Imagick (ou GraphicsMagick) dans un terminal :

convert document.mng document.pdf

Et voici pour cette première méthode.

... ou redistiller ...

La seconde méthode a pour avantage d’être la seule ne pas recourir à des outils en ligne de commande. Il s’agit ici de redistiller le document PDF, c’est-à-dire l’imprimer virtuellement sous de nouvelles dimensions. Classiquement, nous allons abandonner le format A4 pour un autre plus petit, la difficulté principale étant de choisir le format le plus adapté. Impossible pour moi de vous aider sur ce point autrement qu’en vous invitant à vous rendre sur cette page qui répertorie les formats à votre disposition.

Prérequis

  • Acrobat Reader (gratuit), quelque soit votre système d’exploitation [6]. Pour l’installation, sous Mac OSX et Microsoft Windows rendez vous sur cette page, et pour les utilisateurs de GNU/Linux vous trouverez probablement ce paquet dans les dépôts de votre distribution.

Mode d’emploi succinct

PNG - 119.3 ko
Réglage des paramètres d’impression
  1. Ouvrez le document PDF avec Acrobat Reader.
  2. Dans le menu Fichier puis Imprimer, cliquez sur le bouton Propriétés pour choisir le format de papier souhaité ;
  3. De retour dans la fenêtre d’impression, dans Mise à l’échelle choisissez Aucune ;
  4. Également, vérifier si l’option Rotation auto et centrage des pages doit être cochée (dépends de votre situation) ;
  5. Cochez aussi la case Imprimer dans un fichier et valider.
  6. Enfin dans la fenêtre de dialogue qui s’ouvre alors, indiquer le nom du nouveau document créé, et changez son extension .ps en .pdf.

Comme vous le remarquerez sur cette capture d’écran, cette méthode a pour défaut majeur d’exiger de votre document qu’il soit centré (ou éventuellement en haut à gauche). En effet, impossible d’ajuster la position du recadrage sur la page. De plus, elle souffre d’un manque de souplesse, puisqu’il est difficile de retoucher une marge au centimètre près, il faut se contenter des formats de papier définis par la norme ISO 216.

... ou via le terminal

Si cette méthode (décrite sur ici le forum de Framagora) peut paraître austère, c’est finalement la plus efficace à mes yeux. J’ai choisi de vous présenter ici PDFjam pour sa simplicité d’utilisation, mais le script python PDFCrop semble aussi tout à fait performant et à l’avantage d’être a priori utilisable sur toutes les plateformes.

Prérequis

  • PDFjam. Disponible dans les dépôts de la plupart des distributions GNU/Linux ; également utilisable sous Mac OSX, cette solution n’est par contre pas compatible avec Microsoft Windows [7] [8].

Mode d’emploi

Elle s’emploie avec la commande unique :

pdfnup --trim "2cm 2cm 2cm 2cm" --nup 1 source.pdf

Les marges de rognage (ici : 2cm sur les quatre cotés) sont à lire sur le modèle : "Gauche Bas Droite Haut". Bien sûr, vous devrez remplacer source.pdf par le nom de votre document, et éventuellement sa localisation dans l’arborescence.

Conclusion

Difficile finalement de trouver un mode d’emploi sur le web qui fasse état d’une méthode fiable, simple et efficace. Il n’existe pour ainsi dire, aujourd’hui et quelque soit le système d’exploitation, aucune solution idéale... à moins peut-être d’ouvrir son porte-monnaie.

D’un point de vue général sinon, ce petit état des lieux fut l’occasion de remarquer l’inégalité des outils disponibles pour le traitement des documents PDF selon les différents systèmes d’exploitation. Étonnamment, ce sont les plateformes GNU/Linux (et par extension Mac OSX en bénéficie aussi souvent) qui sont ici favorisés, on y trouve en effet une foule d’outils accessibles et performants (en ligne de commande souvent il est vrai). Je serais bien curieux d’en connaître la cause...

Notes

[1] Ce qui ne veut pas dire que c’est impossible à faire, ce n’est simplement pas le sujet ici. N’hésitez pas à utiliser les commentaires...

[2] Par exemple au sein du logiciel Adobe Acrobat, ou Aperçu de Mac OSX.

[3] Aucune donnée n’y est véritablement effacée, le retour en arrière est facile, ce qui peut constituer certes un avantage.

[4] Notamment sous Mac OSX, une incompatibilité reconnue existe en Aperçu et Adobe Acrobat (plusieurs décalages constatés).

[5] Vous trouverez sur cette page quelques indications qui auront leur importance en cas de problème d’installation sous Microsoft Windows

[6] D’autres outils existent bien sûr sur chacune d’entre elles : pour Mac OSX, Aperçu ; pour Microsoft Windows, PDFCreator). La procédure y est similaire.

[7] Sur cette plateforme, il devrait être possible d’imaginer un similaire avec l’outil ImageMagick, toujours en ligne de commande. Si ça intéresse quelqu’un, utilisez les commentaires, je devrais pouvoir expliquer...

[8] Une autre méthode est décrite sur cette page : Les mésaventure d’un PDF. Elle s’appuie également sur deux outils en ligne de commande, pdftops et pdfimages.

Illustration : Acme Self-Clamping Paper-Cutting Machine, American Encyclopaedia of Printing, edited by J. Luther Ringwalt (source).

#1 estelle, le 11 mai 2010 à 09:47

pdftk pour pdf Tools Kit. Un outil très puissant (incontournable voyons !) en ligne de commande : http://pdftk.com/.

Et phatch, http://photobatch.stani.be/, si l’on accepte de traiter son pdf comme une série d’images.

Avec gimp et imagemagick, c’est le kit idéal pour éviter Acrobat et rester libre ;-)

#2 Jonathan, le 11 mai 2010 à 10:26

pdftk... oui, bien sûr est à recommander d’une manière générale. Mais après de longues recherches, il m’a fallu admettre que le recadrage en tant que tel n’y était pas possible, un second outil est inévitable (pdfjam, imagick ou même gimp). Ai-je manqué le paramètre ultime ? :)

Traiter du pdf comme une série d’image n’est pas ici un problème, puisque de toute façon bien souvent il s’agit de documents scannés. Mais en effet je n’aurai jamais pensé à regarder du coté de Phatch... mea culpa. Je regarde ça tout de suite.

Sinon, il est vrai que recadrer un pdf multipage n’est pas si compliqué pour peu que l’on aime bricoler et que l’on soit à l’aise avec le terminal.

#3 Sylvio, le 10 juin 2010 à 14:08

Bonjour,

Je dois effectuer exactement la même chose sur des livres anciens numérisés avec les couvertures.

Pour le moment, je suis contraint de le faire manuellement car les pages paires et impaires sont trop différentes et par ailleurs je travaille sur les images (.tif), car ensuite on les "OCRises"

Pensez-vous que je pourrai tenter d’appliquer cette méthode ou une autre sur les images (.tif) ?

Par avance merci.

#4 Jonathan, le 10 juin 2010 à 17:05

Si je comprends bien, ne pouvant travailler sur un document multipage du fait du format d’image TIF, vous êtes contraints de manipuler successivement et indépendamment chaque page (l’ensemble réunit formant le document numérisé). Ai-je juste ?

Vous vous demandez alors comment automatiser le recadrage pour éviter d’effectuer l’opération à la main pour chaque image, c’est bien ça ? De surcroit vous avez un problème concernant les pages qui diffèrent selon quelle sont paires ou impaires.

Si j’ai bien résumé, alors c’est tout à fait envisageable. Si je me trompe, corrigez moi avant que je me lance dans une explication détaillée (qui du coup ne servira à rien). :)

#5 Sylvio, le 10 juin 2010 à 19:51

Pour le 1er point : oui c’est bien ça, j’ai des images brutes en tif numérisées avec un gros scanner de livre anciens, que je dois détourer. L’ensemble produit un document unique, que je passe ensuite à l’OCR (pour info je fais ça avec Abbyy Finereader pas du tout libre comme soft, argh !). Puis enfin, je produit un pdf avec le texte sous l’image. Ce dernier point est important car la recherche du texte dans le pdf est obligatoire, d’où mon obligation de partir des images tif ...

Pour info, j’avais essayé votre méthode avec gimp, mais cela m’a enlevé la reconnaissance de caractère, mais votre principe est exactement ce dont j’ai besoin à quelques détails près.

Pour le 2e point : oui c’est bien ça également, j’essaye du coup de trouver une astuce pour automatiser ça :)

Enfin, pour le dernier point, je suis donc très impatient de votre réponse qu’elle soit en mode GUI ou en ligne de commande, pas de souci :-)

Dans tous les cas, merci déjà pour la réponse.

#6 Jonathan, le 11 juin 2010 à 18:46

C’est le célèbre programme Imagick qui vous servira pour détourer les images TIF. La commande type est celle-ci :

convert +compress -crop HxL+DH+DV image.tif

Avec pour :

  • H : hauteur en pixel de la zone conservée ;
  • L : largeur en pixel de la zone conservée ;
  • DH : décalage horizontal en pixel de la zone par rapport au coin au gauche ;
  • DV : décalage vertical en pixel de la zone par rapport au coin au gauche.

Pour info, j’ai ajouté le paramètre +compress pour supprimer toute action de compression, ce qui a ici posé problème avec les images TIF en particulier. Essayez avec et sans, et voyez ce qui rends le mieux.

Une fois que vous avez fait tous les tests nécessaires pour déterminer H, L, DH, DV (par exemple : 1000x2000+0+500), et que tout fonctionne bien pour votre image test, vous pouvez automatiser pour le reste des images du répertoire :

for img in *.tif ; do convert +compress -crop HxL+DH+DV $img $img-cropped; done

Pour ce qui est de la problématique des pages paires et impaires, le plus simple reste d’effectuer deux opérations différentes de recadrage (en séparant par exemple chaque groupe dans un dossier différent).

Voilà pour ce qui est du détourage des images TIF en lots, sujet principal de votre question il me semblait. Pour transformer le tout un PDF unique je suppose que vous savez faire, et pour le reste (OCR) j’ai pas tout saisi mais vous avez l’air d’y parvenir parfaitement. Sinon et également s’il manque quelque chose dans mon explication, n’hésitez pas à me solliciter...

#7 Sylvio, le 12 juin 2010 à 14:11

Merci beaucoup pour la réponse précise. Je teste ça la semaine prochaine et vous ferai un retour dans tous les cas.

A +

#8 Sylvio, le 24 juin 2010 à 12:03

Bonjour,

Je reviens au nouvelles après quelques tentatives.

Votre solution marche très bien, merci c’est un début :-)

Seulement pour mon cas, le livre a trop bougé lors de la numérisation, ce qui fait que j’ai à changer les valeurs de DH et/ou DV toutes les 2 ou 3 pages :-(

Conclusion : exploitable sur un bouquin très bien numérisé dont les pages n’ont pas trop bougé.

Du coup, entre lancer la commande, regarder si ça va, reprendre celle qui ne vont pas, c’est pas si productif ...

Il me faudrait quelque chose qui soit capable de repérer les zones de texte, un peu comme ce que fait l’OCR, puis une fois les zones identifiées, cropper autour avec les valeurs DH et/ou DH.

Je ne sais pas si cela existe, dans le cas contraire cela vaudrait vraiment le coup de s’y mettre :)

Dans tous les cas, merci encore pour votre aide.

A +

#9 Jonathan, le 25 juin 2010 à 16:49

J’ai pas beaucoup de temps pour m’y pencher en ce moment, mais je vois bien quelques pistes possibles avec ImageMagick ou avec un script-fu dans GIMP.

Concernant ImageMagick, tu peux essayer de voir dans la doc officielle du coté de la fonction ’-trim’ qui permet de rogner des bordures justement. Également jette un œil sur le script ’autotrim’ plus élaboré disponible ici.

Bon, si je pense à autre chose... je te dis. En tout cas, je ne vois pas d’obstacle majeur à la réalisation d’un truc de ce type. Le seul point noir est la sélection intelligente de la zone à garder, mais si tu travailles en noir et blanc, un jeu sur les contrastes devrait faire l’affaire... Tiens nous au courant de toute façon !

#10 Guigui, le 31 août 2010 à 10:30

Bonjour,
Merci pour ces liens. J’ai aussi trouvé ça pour rogner les pages :
http://sourceforge.net/projects/briss/

C’est très simple !

Merci !

#11 Renavd, le 27 septembre 2010 à 11:14

Effectivement, j’ai utilisé Briss. C’est tout simple, et ça remplit exactement sa mission, y compris sous Windows.

Merci beaucoup pour ce lien.

#12 Jonathan, le 27 septembre 2010 à 11:30

@Guigui & @ renavd : Je découvre Briss sur vos conseils mais... si cet outil est très simplissime pour découper un pdf (même multipage), je ne parviens pas à appliquer une sélection sur plusieurs pages.

Dites-moi si je me trompe : si je veux découper x pages de la même façon, je suis obligé x fois, sur chaque page, de re-sélectionner à la souris la zone à découper... non ?


Une réaction, un commentaire ?
  • Pour créer un paragraphe, laissez simplement une ligne vide. Pour mettre en forme votre texte ou insérer un lien, utilisez les boutons proposés.

Mentions légales et crédits  -  Contact  -  Abonnez-vous !

                                                                                                           

21 billets, 12 articles et 72 commentaires publiés.
Ce site accueille actuellement une moyenne de 74 visiteurs par jour.
Dernière mise à jour le jeudi 2 février 2012.

Réalisé avec Spip 2.1   -   Connexion