628 votes

Comment puis-je réduire la taille du fichier d'un PDF scanné ?

J'ai un fichier PDF de 72,9 Mo que je dois réduire à moins de 500 Ko.

Le fichier était une image JPEG que j'avais scannée, puis convertie en PDF.

1 votes

Cela dépend de ce qui consomme l'espace...besoin de beaucoup plus d'informations. compresser l'espace des images pourrait aider, mais si vous essayez un grand tas de fichiers, cela ne fonctionnera pas. sérieusement besoin de plus d'infos.

1 votes

Convertissez-le en DjVu, plutôt que d'essayer de le réduire à une taille de PDF impossible (selon la source)

0 votes

Le fichier était une image jpeg que j'avais numérisée, puis convertie en pdf.

885voto

Michael D Points 8987

Utilisez la commande ghostscript suivante :

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Résumé de -dPDFSETTINGS :

  • -dPDFSETTINGS=/screen qualité inférieure, taille plus petite. (72 dpi)
  • -dPDFSETTINGS=/ebook pour une meilleure qualité, mais des fichiers pdf légèrement plus grands. (150 dpi)
  • -dPDFSETTINGS=/prepress sortie similaire au paramétrage "Optimisé pour la prépresse" d'Acrobat Distiller (300 dpi)
  • -dPDFSETTINGS=/printer sélectionne une sortie similaire au paramétrage "Optimisé pour l'impression" d'Acrobat Distiller (300 dpi)
  • -dPDFSETTINGS=/default sélectionne une sortie destinée à être utile pour une grande variété d'utilisations, éventuellement au détriment d'un fichier de sortie plus volumineux

Référence : https://www.ghostscript.com/doc/current/VectorDevices.htm#PSPDF_IN:

Contrôles et fonctionnalités spécifiques à l'entrée PostScript et PDF

-dPDFSETTINGS=configuration

Prédéfinit les "paramètres de distillation" sur l'un des quatre réglages prédéfinis :

  • /screen sélectionne une sortie à basse résolution similaire au paramétrage "Optimisé pour l'écran" d'Acrobat Distiller (jusqu'à la version X).
  • /ebook sélectionne une sortie à résolution moyenne similaire au paramétrage "eBook" d'Acrobat Distiller (jusqu'à la version X).
  • /printer sélectionne une sortie similaire au paramétrage "Optimisé pour l'impression" d'Acrobat Distiller (jusqu'à la version X).
  • /prepress sélectionne une sortie similaire au paramétrage "Optimisé pour la prépresse" d'Acrobat Distiller (jusqu'à la version X).
  • /default sélectionne une sortie destinée à être utile pour une grande variété d'utilisations, éventuellement au détriment d'un fichier de sortie plus volumineux.

Les paramètres exacts pour chacun d'eux, y compris leurs valeurs DPI, sont indiqués dans les dizaines d'options de ce tableau : https://www.ghostscript.com/doc/current/VectorDevices.htm#distillerparams.

2 votes

On peut également créer un script Nautilus pour accéder à cette fonction pour chaque fichier.

20 votes

Ceci devrait être la réponse acceptée. ghostscri est le implémentation de PDF, XPS et PS pour les unix et peut essentiellement tout faire en offrant la meilleure qualité...

9 votes

@Sina: Il existe en fait un script Nautilus avec une interface graphique simple basée sur Zenity qui utilise cette commande gs avec toutes ses options de qualité: launchpad.net/compress-pdf

246voto

don.joey Points 26933

Ma façon préférée de faire cela est de convertir le PDF en PostScript et vice versa. Cela ne fonctionne pas toujours, mais quand ça marche, les résultats sont bons :

ps2pdf input.pdf output.pdf

Cela fonctionne également directement sur les PDF, comme suggéré dans les commentaires.

Certains utilisateurs rapportent également plus de succès lorsqu'ils utilisent les paramètres du livre électronique comme suit :

ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf

20 votes

Malgré le fait que cette approche est devenue ma solution préférée pour compresser les fichiers pdf, elle casse les liens url que le document peut avoir (ce qui n'arrive pas avec l'approche de @Michael D). Mis à part cela, la qualité est tout ce à quoi je pense en exécutant cet extrait! (:

1 votes

@Rubens Ah. Ne savais pas que cela casse les liens url. Merci d'avoir ajouté cela.

4 votes

Cela contourne la protection par mot de passe...juste pour dire.

224voto

v2r Points 8969

Aking1012 a raison. Avec plus d'informations concernant d'éventuelles images intégrées, des hyperliens, etc., il serait beaucoup plus facile de répondre à cette question !

Voici quelques solutions de script et en ligne de commande. Utilisez-les comme bon vous semble.

26 votes

Merci beaucoup pour vos suggestions, le shell ghostscript a fait des merveilles et l'a réduit à 460KB :)

0 votes

Cela n'est pas nécessairement vrai. Si le contenu est passé d'une image à un texte, c'est plus que faisable. [Cela suppose que le texte soit correctement ocré]

6 votes

Je vous recommande le script shrinkpdf.sh, vous pouvez personnaliser le code pour utiliser la valeur ppp que vous souhaitez (72 par défaut) et atteindre exactement la taille de fichier dont vous avez besoin sans sacrifier la qualité. Cela m'a permis de télécharger un document numérisé de 11 Mo avec une taille maximale de 3 Mo sans perdre beaucoup de qualité.

192voto

someonr Points 2029

Si vous avez un pdf avec des images scannées, vous pouvez utiliser convert (ImageMagick) pour créer un pdf avec une compression jpeg (Vous pouvez utiliser cette méthode sur n'importe quel pdf, mais vous perdrez toutes les informations textuelles).

Par exemple:

convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf

Ajustez les paramètres selon vos besoins

  • -density : la densité de pixels en dpi (par exemple 100x100). Des densités de pixels plus élevées améliorent la qualité et la taille
  • -quality : le taux de compression. Pour jpg, il est compris entre 1 et 100 avec 100 la meilleure qualité, mais la compression la plus faible
  • -compress : l'algorithme de compression. La compression jpeg pourrait ne pas être le meilleur choix en raison des artefacts de compression. Vous avez le choix entre BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE ou Zip comme méthodes de compression alternatives (certaines ne permettent que des images en noir et blanc).

J'ai pu obtenir de bons taux de compression pour des documents scannés/photographiés (selon les réglages). En fonction de la source du document, vous voudrez peut-être réduire la profondeur des couleurs (argument -depth).

3 votes

Pour un document numérisé où le texte est ce qui vous intéresse plutôt que les images et la préservation de la profondeur n'est pas un problème, la compression jpeg n'est pas une bonne idée car les artéfacts tendent à être extrêmement visibles. Si vous utilisez pdfimages input.pdf pages pour extraire des fichiers pbm, vous pouvez faire quelque chose comme: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. Toute OCR sera perdue, donc je fais généralement ensuite pdfsandwich output.pdf, ce qui semble réduire encore davantage la taille du fichier.

1 votes

@BrianZ bien sûr, la compression jpeg n'est pas toujours le meilleur choix, mais pour moi, c'était la meilleure approche pour les documents de types mixtes. J'ai ajouté des informations sur d'autres méthodes de compression à la réponse.

2 votes

Cette méthode utilise finalement gs dans les coulisses.

61voto

mlitty Points 609

J'avais besoin de réduire la taille d'un PDF contenant des numérisations couleur complètes d'un document. Chacune de mes pages était une image en couleur selon le fichier. Il s'agissait d'images de pages contenant du texte et des images, mais créées par numérisation en une image.

J'ai utilisé une combinaison de la commande ghostscript ci-dessous et d'une autre provenant d'un autre fil de discussion.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE  -dBATCH -sOutputFile=output.pdf input.pdf

Cela a réduit la résolution de l'image à 150 dpi, réduisant la taille de mon fichier de moitié. En regardant le document, il n'y avait presque aucune perte de qualité d'image perceptible. Le texte est toujours parfaitement lisible sur mon Nexus7 de 2012.

5 votes

+1 pour la réduction d'échantillonnage des images tout en conservant le texte en vecteurs. Cela a fait une énorme différence du côté sans rendre mon texte pixelisé.

1 votes

Fantastique qu'on puisse ajuster la résolution avec cette commande - cela m'a donné de meilleurs résultats que simplement utiliser dPDFSETTINGS=\screen

0 votes

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X