Comment supprimer des images d'un fichier PDF

13

J'ai un document PDF assez volumineux (~ 100 Mo) avec beaucoup d'images (comme illustrations et images d'arrière-plan), et j'aimerais en avoir une copie sans images mais je ne sais pas comment fais ça.

Je ne parle pas de le convertir en texte uniquement, je voudrais 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.

Ornux
la source
Comme nous parlons d'un document de 500 pages avec plusieurs images sur chaque page, je cherche un moyen automatisé de supprimer chaque image.
Ornux

Réponses:

14
cpdf -draft original.pdf -o version_without_images.pdf

Il n'est pas dans les référentiels 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, de sorte qu'il peut être imprimé avec moins d'encre. Facultativement, l'option -boxes peut être ajoutée, remplissant les espaces laissés vides avec une case barrée indiquant l'endroit où l'image était. Cela n'est pas garanti d'être entièrement visible dans tous les cas (le bitmap peut avoir été partiellement couvert par des objets vectoriels ou coupé dans l'original). Par exemple:

 cpdf -draft -boxes in.pdf -o out.pdf
Rinzwind
la source
1
C'est exactement ce que je cherchais. Le fichier de sortie est tout simplement parfait. Merci beaucoup!
Ornux
@Rinzwind Veuillez noter que le lien "leur site Web" va en fait vers un fichier zip.
Jos
Hmm .. pour moi, cela continue d'ajouter des lignes presque aléatoires sur et à travers le texte, et la taille du fichier augmente légèrement, plutôt que de rétrécir.
Henning Koehler
23

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

Il existe même deux nouveaux paramètres supplémentaires qui peuvent être ajoutés afin de supprimer de manière sélective les types de contenu "vecteur" et "texte" :

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

  2. -dFILTERTEXT: produit une sortie où tous les éléments de texte sont supprimés.

  3. -dFILTERVECTOR: produit une sortie où 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 qui contient les 3 types de contenu mentionnés ci-dessus:

Capture d'écran de la page PDF d'origine contenant des éléments "image", "vecteur" et "texte".
Capture d'écran de la page PDF d'origine contenant des éléments "image", "vecteur" et "texte".


L'exécution des 6 commandes suivantes créera 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 -dFILTERVECTOR -dFILTERTEXT input.pdf
 gs -o onlyTXT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf

L'image suivante illustre les résultats:


Rangée du haut, de gauche: tout "texte" supprimé; toutes les "images" supprimées; tous les "vecteurs" ont été supprimés. Rangée du bas, de gauche: seul "texte" conservé; seules les "images" sont conservées; seuls les "vecteurs" sont conservés.
Rangée du haut, de gauche: tout "texte" supprimé;  toutes les "images" supprimées;  tous les "vecteurs" ont été supprimés.  Rangée du bas, de gauche: seul "texte" conservé;  seules les "images" sont conservées;  seuls les "vecteurs" sont conservés.


Kurt Pfeifle
la source
2

Alors que la réponse @Rinzwind est la bonne chose , je voudrais juste commenter la solution "à mi-chemin". Vous pouvez normalement réduire considérablement la taille des images en utilisant 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 la rédaction de PDF est ici .

Rmano
la source
@KurtPfeifle définira /screen(entre autres) la résolution des images bitmap à 72 dpi. Alors oui, si vous avez des images à plus petit DPI, cela peut augmenter la taille du fichier. C'est la raison pour laquelle j'ai utilisé le mot "normalement" (dans le sens de "pas toujours, mais assez souvent"). N'hésitez pas à voter contre ce que vous voulez.
Rmano
Exécutez cette commande: for s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done. Il produira deux fichiers texte que vous pourrez comparer en utilisant sdiff -sbB $[file1}.txt ${file2}.txt. Maintenant, vous connaissez exactement et complètement tous les différents paramètres introduits par -dPDFSETTINGS=/screen!
Kurt Pfeifle
Terminé. Je ne vois toujours pas quelle option peut donner un fichier plus volumineux /screenqu'en /default--- 72 dpi contre 150 dpi, optimisé, ignorer l'aperçu EPS ... mais bon, ce n'est pas un gros problème. Les gens vont tester et choisir la meilleure solution.
Rmano
Je suis désolé - peut-être que je dois m'excuser maintenant pour la coquine de ma première déclaration. Pour être honnête, je ne semble se souvenir de mes enquêtes précédentes (quelques ans de retour) qui /screenont donné des résultats très mauvais. Peut-être que ma mémoire échoue, ou je l'ai mélangé /epub. La commande que je vous ai donnée venait de mémoire parce que j'étais sûr qu'elle montrerait ce que je voulais dire. Maintenant, je l'ai relancé à nouveau, je ne vois plus ce que j'attendais: des tests plus étendus que j'ai exécutés il y a quelques années. Ensuite, de nombreuses polices (CID? / CFF?) Ont obtenu des tailles de ballonnement pixellisées des PDF résultants. Je dois
revisiter
0

Vous pouvez utiliser l'éditeur de pdf maître, supprimer ces images et enregistrer en tant que nouveau fichier pdf. Vous pouvez le télécharger à partir du centre de logiciels Ubuntu.

Sudheer
la source
Je viens de l'installer pour essayer, mais je ne vois aucun moyen automatisé de le faire. Étant donné qu'il s'agit d'un document de 500 pages, je ne vois pas la suppression manuelle comme une solution ici. Ai-je oublié quelque chose ?
Ornux
non vous n'avez rien manqué je pensais que les images sont de grande taille donc vous voulez les supprimer, jamais pensé à autant d'images. de toute façon une belle question.
Sudheer