web-dev-qa-db-fra.com

Comment supprimer des images d'un fichier PDF

J'ai un document plutôt volumineux (~ 100 Mo) PDF avec beaucoup d'images (illustrations et images de fond) et j'aimerais avoir une copie de ce pdf sans images, mais je peux Vous ne savez pas comment faire ça.

Je ne parle pas de le convertir en texte uniquement, j'aimerais garder les paragraphes/tableaux/multi-colonnes tels quels.

Je suis à l'aise avec la ligne de commande et j'ai plusieurs ordinateurs avec différentes distributions que je peux utiliser.

12
Ornux
cpdf -draft original.pdf -o version_without_images.pdf

Ce n'est pas dans les dépôts mais vous pouvez trouver un téléchargement ( pré-compilé ou source ) sur leur site web .


Manuel :

15.1 Projets de documents

L'option -draft supprime les images bitmap (photographiques) d'un fichier afin qu'il puisse être imprimé avec moins d'encre. Facultativement, l'option -boxes peut être ajoutée, en remplissant les espaces laissés en blanc par une boîte croisée indiquant l'emplacement de l'image. Cela n’est pas garanti d’être parfaitement visible dans tous les cas (le bitmap peut avoir été partiellement recouvert par des objets vectoriels ou tronqué dans l’original). Par exemple:

 cpdf -draft -boxes in.pdf -o out.pdf
13
Rinzwind

Les dernières versions de Ghostscript peuvent également le faire. Ajoutez simplement le paramètre _-dFILTERIMAGE_ à votre commande.

Deux nouveaux paramètres peuvent même être ajoutés pour supprimer sélectivement les types de contenu "vecteur" et "texte" :

  1. -dFILTERIMAGE: produit une sortie où toutes les images raster sont supprimées.

  2. -dFILTERTEXT: génère une sortie dans laquelle tous les éléments de texte sont supprimés.

  3. -dFILTERVECTOR: génère une sortie dans laquelle tous les dessins vectoriels sont supprimés.

Deux de ces options peuvent être combinées. (Si vous combinez les 3, toutes les pages seront vides ...)

Exemples

Voici la capture d'écran d'un exemple de page PDF contenant les 3 types de contenu mentionnés ci-dessus:

Capture d'écran de la page d'origine PDF contenant les éléments "image", "vecteur" et "texte".
Screenshot of original PDF page containing "image", "vector" and "text" elements.


L'exécution des 6 commandes suivantes créera toutes les 6 variantes possibles du contenu restant:

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE input.pdf 
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT input.pdf 
 gs -o noVCT. pdf -sDEVICE = pdfwrite -dFILTERVECTOR input.pdf 
 
 gs -o onlyIMG.pdf -sDEVICE = pdfwrite -dFILTERVECOR -dFILTERTEXT input.pdf 
 gs -o onlyTXT.sdfVs = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf 
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf 

L'image suivante illustre les résultats:


Rangée supérieure, en partant de la gauche: tout "texte" supprimé; toutes les "images" supprimées; tous les "vecteurs" supprimés. Rangée du bas, en partant de la gauche: seul le "texte" est conservé; seules "images" sont conservées; seuls les "vecteurs" sont conservés.
Top row, from left: all "text" removed; all "images" removed; all "vectors" removed. Bottom row, from left: only "text" kept; only "images" kept; only "vectors" kept.


17
Kurt Pfeifle

Alors que la réponse @Rinzwind est le Right Thing , je voudrais juste commenter la solution "intermédiaire". Vous pouvez normalement réduire considérablement la taille des images avec ghostscript avec

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf

... c'est parfois très pratique pour la relecture. La page de manuel pour écrire PDF est ici .

1
Rmano

Vous pouvez utiliser l'éditeur de PDF maître, supprimer ces images et enregistrer sous un nouveau fichier pdf. Vous pouvez le télécharger à partir du centre logiciel Ubuntu.

0
Sudheer