Comment puis-je réduire la taille du fichier PDF numérisé?

311

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 numérisée puis convertie au format PDF.

    
posée tamimym 16.03.2012 - 18:12
la source

20 réponses

124

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

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

réponse donnée v2r 16.03.2012 - 18:28
la source
433

Utilisez la commande ghostscript suivante:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  • -dPDFSETTINGS=/screen qualité inférieure, taille inférieure. ( 72 dpi )
  • -dPDFSETTINGS=/ebook pour une meilleure qualité, mais des pdfs légèrement plus grands. ( 150 dpi )
  • La sortie de -dPDFSETTINGS=/prepress est similaire au paramètre "Pré-impression optimisée" d'Acrobat Distiller ( 300 dpi )
  • -dPDFSETTINGS=/printer sélectionne une sortie similaire au paramètre "Imprimer optimisé" d’Acrobat Distiller ( 300 dpi )
  • -dPDFSETTINGS=/default sélectionne la sortie destinée à être utile pour une grande variété d’utilisations, éventuellement au détriment d’un fichier de sortie plus volumineux
réponse donnée Michael D 15.02.2013 - 14:53
la source
127

Ma façon préférée de faire ceci est de convertir le pdf en ps et retour. Cela ne fonctionne pas toujours, mais les résultats sont satisfaisants:

ps2pdf input.pdf output.pdf

Cela fonctionne aussi directement sur les pdf, comme suggéré dans les commentaires.

    
réponse donnée don.joey 16.01.2013 - 10:18
la source
108

Si vous avez un pdf avec des images numérisées , vous pouvez utiliser convert pour créer un pdf avec 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

Adaptez la densité (par exemple 100x100) et la qualité à vos besoins.

En fonction de votre entrée, la compression en jpeg pourrait ne pas être le meilleur choix en raison d'artefacts de compression. Vous avez le choix entre BZip, Fax, Groupe4, JPEG, JPEG2000, Sans perte, LZW, RLE ou Zip comme méthodes de compression alternatives (certaines n'autorisant les images en noir et blanc). Pour plus de détails, consultez ici .

J'ai pu obtenir d'excellents taux de compression pour les documents numérisés / photographiés (en fonction des paramètres). En fonction de la source du document, vous pouvez réduire la profondeur de couleur (argument -depth ).

    
réponse donnée someonr 19.05.2014 - 19:39
la source
33

Je devais réduire la taille d'un fichier PDF contenant des numérisations couleur d'un document. Chacune de mes pages était une image en couleur en ce qui concerne le fichier. C'étaient des images de pages contenant du texte et des images, mais elles ont été créées en numérisant une image.

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

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 ppp, réduisant ainsi la taille de mon fichier de moitié. En regardant le document, il n'y avait presque aucune perte notable de qualité d'image. Le texte est toujours parfaitement lisible sur mon Nexus7 2012.

    
réponse donnée mlitty 19.01.2014 - 07:25
la source
26

Voici un script pour réécrire les fichiers PDF numérisés:

#!/bin/sh

gs  -q -dNOPAUSE -dBATCH -dSAFER \
    -sDEVICE=pdfwrite \
    -dCompatibilityLevel=1.3 \
    -dPDFSETTINGS=/screen \
    -dEmbedAllFonts=true \
    -dSubsetFonts=true \
    -dColorImageDownsampleType=/Bicubic \
    -dColorImageResolution=72 \
    -dGrayImageDownsampleType=/Bicubic \
    -dGrayImageResolution=72 \
    -dMonoImageDownsampleType=/Bicubic \
    -dMonoImageResolution=72 \
    -sOutputFile=out.pdf \
     $1

Vous pouvez le personnaliser un peu pour le rendre plus réutilisable, mais si vous n’avez qu’un seul fichier PDF, vous pouvez simplement remplacer $1 par votre nom de fichier pdf et le placer dans un terminal.

    
réponse donnée Oli 31.08.2010 - 22:29
la source
18

J'utilise habituellement ps2pdf pour ce faire (syntaxe plus simple), quelque chose comme ceci:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

J'utilise le script python suivant pour réduire la taille de tous les fichiers pdf d'un répertoire d'un serveur de production (8.04). Cela devrait donc fonctionner.

#!/usr/bin/python

import os

for fich in os.listdir('.'):
        if fich[-3:]=="pdf":
                os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
    
réponse donnée Javier Rivera 01.09.2010 - 09:26
la source
14
  1. J'utilise LibreOffice Draw pour ouvrir le fichier PDF.
  2. J'exporte ensuite "au format pdf"
  3. Et réglez "qualité de la compression jpeg" sur 50% et "résolution de l'image" sur 150 dpi

Cela donnera un bon résultat.

    
réponse donnée Marius4674 14.06.2016 - 11:59
la source
8

Le meilleur pour moi était

convert -compress Zip -density 150x150 input.pdf output.pdf

Autres moyens:

#### gs
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE

### pdf2ps && ps2pdf
pdf2ps input.pdf output.ps && ps2pdf output.ps output.pdf

### Webservice
http://compress.smallpdf.com/de

salutations

    
réponse donnée oxidworks 21.04.2016 - 13:03
la source
5

Je viens de rencontrer ce problème moi-même. Si vous utilisez une numérisation simple, sélectionnez le mode texte pour les numérisations à basse résolution. Vous n'aurez plus à vous soucier de la ligne de commande. Je viens de dire.

    
réponse donnée user179584 29.07.2013 - 23:13
la source
3

Étant donné que ce lien était la première pour moi lorsque j'ai effectué une recherche dans Google, j'ai pensé ajouter une possibilité supplémentaire. Aucune des solutions ci-dessus ne fonctionnait pour moi sur un fichier PDF exporté d'Inkscape (15 Mo), mais j'ai enfin pu le réduire à 1 Mo en l'ouvrant dans GIMP et en l'exportant à nouveau au format PDF.

Une autre option qui s'est rapprochée (mais le texte était un peu flou) était l'utilitaire de conversion d'ImageMagick:

convert -compress Zip input.pdf output.pdf
    
réponse donnée mbroshi 13.02.2014 - 13:32
la source
3

Finalement, j'ai écrit mon propre script bash pour résoudre ce problème. Il utilise mogrify , convert et gs pour extraire les pages pdf au format png, les redimensionner, les convertir en bmp 1 bit, puis les reconstruire. comme pdf. La réduction de la taille du fichier peut être supérieure à 90%. Disponible sur le lien .

    
réponse donnée scoobydoo 21.09.2016 - 14:15
la source
3

Contrôlez la qualité de la compression:

#!/bin/sh
INPUT=$1; shift
OUTPUT=$1; shift
GS_BIN=/usr/bin/gs
QFACTOR="0.40"

# Image Compression Quality
#
# Quality HSamples VSamples QFactor
# Minimum [2 1 1 2] [2 1 1 2] 2.40
# Low     [2 1 1 2] [2 1 1 2] 1.30
# Medium  [2 1 1 2] [2 1 1 2] 0.76
# High    [1 1 1 1] [1 1 1 1] 0.40
# Maximum [1 1 1 1] [1 1 1 1] 0.15 

${GS_BIN} -dBATCH -dSAFER -DNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=${OUTPUT} -c "<< /ColorImageDict << /QFactor ${QFACTOR} /Blend 1 /HSample [1 1 1 1] /VSample [1 1 1 1] >> >> setdistillerparams" -f ${INPUT}
    
réponse donnée user525719 02.04.2016 - 06:11
la source
1

Si la conversion en djvu est également acceptable et si aucune couleur n'est impliquée, vous pouvez essayer les solutions suivantes:

Convertissez le fichier PDF en fichier jpg à l'aide de pdfimages -j

Si vous obtenez des fichiers pbm à la place, vous devez effectuer l'étape intermédiaire suivante:

for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done

La commande convert provient du package imagemagick.

Utilisez ensuite scantailor pour en faire des tif.

Dans une dernière étape, vous accédez au répertoire des scantailors out (où se trouvent les tif) et appliquez djvubind .

Ceci devrait réduire considérablement la taille du fichier sans perte importante de qualité du texte. Si vous souhaitez un contrôle plus précis du back-end ocr, vous pouvez essayer djvubind --no-ocr et utiliser ocrodjvu pour ajouter la couche ocr par la suite.

Si votre document contient de la couleur, les choses se compliquent un peu. Au lieu de djvubind , vous pouvez utiliser didjvu et dans Scantailor, vous devez passer en mode mixte et sélectionner parfois les images couleur manuellement.

    
réponse donnée student 11.09.2011 - 10:43
la source
1

chargez un fichier image ou même pdf dans inkscape.

De inkscape: enregistrez au format vectoriel (sous le format .svg natif).

Importez des fichiers vectoriels dans scribus, modifiez la mise en page et exportez / enregistrez au format .pdf à partir de là

    
réponse donnée ape 28.07.2013 - 22:45
la source
1

Je faisais face au même problème et je suis heureux de trouver ce fil. Plus précisément, j'avais un fichier PDF généré à partir d'images numérisées et j'avais besoin de réduire sa taille en octets d'un facteur 6.

Malheureusement, aucune des solutions ci-dessus n'a fonctionné :(. Puis je me suis rendu compte que quelque part dans le processus scanner- > jpeg- & pdf, la taille de la page avait été gonflée d'un facteur de 4 environ. Les documents que j'ai scannés étaient tous de la taille d'une lettre, mais le pdf avait une taille de

identify -verbose doc_orig.pdf | grep "Print size"
 Print size: 35.4167x48.7222

J'ai finalement obtenu les résultats souhaités avec une commande "convertir" qui redimensionnait et compressait en une étape:

convert -density 135x135 -quality 70 -compress jpeg -resize 22.588% doc_orig.pdf doc_lowres.pdf

Notez que doc_orig avait une densité de 72x72 dpi.

    
réponse donnée Kalpit 20.03.2016 - 12:56
la source
0

Outil de compression de PDF très simple: page GitHub.

Installation sur Ubuntu:

sudo add-apt-repository ppa:jfswitz/released

sudo apt-get update

sudo apt-get install pdf-compressor

Il utilise ghostscript.

    
réponse donnée John 12.10.2015 - 14:39
la source
0

J'ai récemment découvert et recommandé vivement pdfsizeopt .

Il est beaucoup plus efficace que tous les logiciels CLI et GUI précédents que j'ai essayés (y compris convert , gs , pdftk , etc.) - bien que ce soit peut-être plus lent avec pngout activé - et pas certains de leurs problèmes (pas d'images très pixelisées / dégradées, pas de perte de marque-pages, etc.).

Je recommande l'installation de installation Unix générique :

.
  1. Installez toutes les dépendances requises:

  2. Téléchargez et installez l'exécutable:

    curl -L -o https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
    cp pdfsizeopt.single /usr/local/bin/pdfsizeopt
    

Utilisation:

pdfsizeopt original.pdf [compressed.pdf]
    
réponse donnée Serge B. 02.03.2018 - 15:37
la source
0

Vous pouvez essayer ceci:

$ time pdftk myFile.pdf output myFile__SMALLER.pdf compress
GC Warning: Repeated allocation of very large block (appr. size 16764928):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 11837440):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 7254016):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 34041856):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
    May lead to memory leak and poor performance.

real    0m23.677s
user    0m23.142s
sys     0m0.540s
$ du myFile*.pdf
108M    myFile.pdf
74M     myFile__SMALLER.pdf

Il est plus rapide que gs mais compresse jusqu’à 30% dans ce cas pour un fichier d’entrée de 107,5 Mo.

    
réponse donnée SebMa 09.08.2018 - 18:01
la source
-2

J’ai utilisé les commandes ci-dessous mais il n’a pas compressé mon fichier pdf de manière substantielle. Parfois, une partie de la portion était noircie après compression.

  1. gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE

  2. "ps2pdf -dPDFSETTINGS=/ebook %s %s" % (input_file_path, out_file_path)

Après avoir trop erré sur le Web, je ne trouvais tout simplement pas la bonne bibliothèque de compression. Je suis tombé sur pdfcompressor.com . C'est juste un site génial. Il compresse le pdf de 95% (15 Mo de fichiers). J'ai donc utilisé le sélénium et Tor pour automatiser la compression. Commander mon dépôt Github. [GITHUB] ( lien )

    
réponse donnée Prince 08.05.2018 - 13:10
la source

Lire d'autres questions sur les étiquettes