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.
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.
Références cette réponse et cette réponse, et après avoir essayé plusieurs des réponses ici, et avoir fait beaucoup de recherches et d'expérimentations, j'ai élaboré ce qui suit. Notez que j'ai supprimé la partie -dCompatibilityLevel=1.4
de la commande utilisée dans certaines autres réponses ici car ce tableau indique que les valeurs 1.5
ou 1.7
sont automatiquement utilisées pour ce paramètre aujourd'hui (27 déc. 2020), et il n'est pas nécessaire de remplacer ces valeurs.
gs
) pour compresser input.pdf
en output.pdf
3 niveaux principaux de compression :
Note : vous pouvez également ajouter -dQUIET
pour supprimer toutes les sorties vers stdout. Voir : https://www.ghostscript.com/doc/current/Use.htm.
Faible compression : 300 dpi (taille de fichier importante)
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -dNOPAUSE -dBATCH \
-sOutputFile=output.pdf input.pdf
[MEILLEUR dans mon test] Compression moyenne (recommandée) : 150 dpi (taille de fichier moyenne)
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH \
-sOutputFile=output.pdf input.pdf
Haute compression : 72 dpi (petite taille de fichier -- peut produire des résultats granuleux ou illisibles dans certain cas, donc essayez et testez)
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH \
-sOutputFile=output.pdf input.pdf
Vous pouvez également ajouter time
devant la commande pour voir combien de temps cela prend (cela fonctionne avec n'importe quelle commande Linux). Exemple de sortie :
$ time gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -sOutputFile=out.pdf in.pdf
GPL Ghostscript 9.50 (2019-10-15)
Copyright (C) 2019 Artifex Software, Inc. All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
Processing pages 1 through 15.
Page 1
Loading NimbusSans-Regular font from /usr/share/ghostscript/9.50/Resource/Font/NimbusSans-Regular... 5205104 3852122 2872760 1487237 3 done.
Page ...
...
...
...
real 0m1.326s
user 0m1.142s
sys 0m0.048s
Si vous ajoutez -dQUIET
à la commande, aucune sortie de Ghostscript n'est affichée, et vous obtenez ceci (en utilisant time
devant) :
$ time gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -dQUIET -sOutputFile=out.pdf in.pdf
real 0m1.018s
user 0m0.976s
sys 0m0.040s
Vous pouvez également utiliser ps2pdf
, qui est un wrapper autour de gs
, et produit des résultats très similaires, mais pas exactement identiques. Je préfère simplement utiliser gs
directement, comme indiqué ci-dessus, cependant.
Faible compression : 300 dpi (taille de fichier importante)
ps2pdf -dPDFSETTINGS=/printer input.pdf output.pdf
Compression moyenne (recommandée) : 150 dpi (taille de fichier moyenne)
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf
Haute compression : 72 dpi (petite taille de fichier -- peut produire des résultats granuleux ou illisibles dans certain cas, donc essayez et testez)
ps2pdf -dPDFSETTINGS=/screen input.pdf output.pdf
En testant les commandes gs
ci-dessus sur la sortie de mon script pdf2searchablepdf ici, je vois ce qui suit :
gs
) :Pour tous les -d
("d
éfinir") PDFSETTINGS
disponibles, voir ici : https://www.ghostscript.com/doc/current/VectorDevices.htm#PSPDF_IN. J'ai cité cette section ci-dessous, sauf que j'ai ajouté les valeurs DPI pour chaque paramètre en gras, comme prises de ce tableau ici. Vous pouvez consulter ce tableau pour voir les dizaines de paramètres de plus bas niveau choisis par gs
pour chaque option PDFSETTINGS
.
Contrôles et fonctionnalités spécifiques à l'entrée PostScript et PDF
-dPDFSETTINGS=configuration
Préconfigure les "paramètres de distillation" vers l'une des quatre configurations prédéfinies :
/screen
(72 dpi) sélectionne une sortie à basse résolution similaire à la configuration "Optimisé pour l'écran" de l'Acrobat Distiller (jusqu'à la version X)./ebook
(150 dpi) sélectionne une sortie à résolution moyenne similaire à la configuration "eBook" de l'Acrobat Distiller (jusqu'à la version X)./printer
(300 dpi) sélectionne une sortie similaire à la configuration "Optimisé pour l'impression" de l'Acrobat Distiller (jusqu'à la version X)./prepress
(300 dpi) sélectionne une sortie similaire à la configuration "Optimisé pour la prépresse" de l'Acrobat Distiller (jusqu'à la version X)./default
(72 dpi) sélectionne une sortie destinée à être utile dans une grande variété d'utilisations, éventuellement au détriment d'un fichier de sortie plus volumineux.
Vous pouvez également voir les définitions de diverses options sur cette page : https://www.ghostscript.com/doc/current/Use.htm.
-dNOPAUSE
Désactive l'invite et la pause à la fin de chaque page. Normalement, on devrait l'utiliser (avec-dBATCH
) lors de la production de sortie sur une imprimante ou dans un fichier ; cela peut également être souhaitable pour les applications où un autre programme "pilote" Ghostscript.
-dBATCH
Force Ghostscript à quitter après le traitement de tous les fichiers nommés sur la ligne de commande, au lieu d'entrer dans une boucle interactive lisant des commandes PostScript. Équivalent à mettre-c quit
à la fin de la ligne de commande.
-dQUIET
Supprime les commentaires d'informations habituels sur la sortie standard. C'est actuellement nécessaire lors de la redirection de la sortie de l'appareil vers la sortie standard.
Pour moi, l'option screen
de gs était trop mauvaise, et celle de ebook
trop grande.
Mon document original contenait du texte en couleur et des images en noir et blanc (selon la page).
La meilleure solution que j'ai trouvée a été :
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true -dDownsampleGrayImages=true -dDownsampleMonoImages=true -dColorImageResolution=130 -dGrayImageResolution=130 -dMonoImageResolution=130 -r130 -dNOPAUSE -dBATCH -sOutputFile=output_lr.pdf input.pdf
Remarquez que le niveau de compression n'est pas linéaire... si je spécifiais 135, cela ne comprimait pas, j'ai trouvé que 130 était (dans mon cas) la résolution maximale qui permettait une compression.
Depuis que ce lien était le premier pour moi lorsque j'ai cherché dans Google, j'ai pensé ajouter une autre possibilité. Aucune des solutions ci-dessus ne fonctionnait pour moi sur un fichier PDF exporté depuis Inkscape (15 Mo), mais j'ai finalement pu le réduire à 1 Mo en l'ouvrant dans GIMP, et en l'exportant à nouveau en PDF.
Une autre option qui s'est approchée (mais le texte était un peu flou) était l'utilitaire convert d'ImageMagick :
convert -compress Zip input.pdf output.pdf
Contrôlez la qualité de compression :
#!/bin/sh
INPUT=$1; shift
OUTPUT=$1; shift
GS_BIN=/usr/bin/gs
QFACTOR="0.40"
# Qualité de compression d'image
#
# Qualité HSamples VSamples QFactor
# Minimum [2 1 1 2] [2 1 1 2] 2.40
# Faible [2 1 1 2] [2 1 1 2] 1.30
# Moyenne [2 1 1 2] [2 1 1 2] 0.76
# Élevée [1 1 1 1] [1 1 1 1] 0.40
# Maximale [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}
...donc à la fois INPUT et OUTPUT sont le même argument? Vous voudrez peut-être ajouter des directives d'utilisation.
Notez le shift
. Le premier paramètre est le fichier d'entrée, le second est le fichier de sortie et le reste des paramètres sera passé à gs
tel quel.
Je pense que vous voulez des échantillons HS et VS, pas des échantillons H et V. Voir par exemple les documents de ps2pdf ou le manuel de référence du langage PostScript. Il est également peut-être utile de noter que la plage de facteur Q autorisée va de 0 à 1 000 000 et que des valeurs plus faibles produisent une meilleure qualité.
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.
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.
1 votes
Il semble seulement aider un peu la taille du fichier, mais
pdfopt
a une syntaxe simple et améliore la vitesse de chargement et de tournage de page à l'ère de l'iPad. :-)2 votes
PDF vers PS n'est pas efficace dans le cas d'un fichier PDF scanné, j'essaie de convertir un PDF de 56 Mo en fichier PS mais le fichier PS se convertit en 1,3 Go et à nouveau, ps2pdf est converti en un fichier de 45 Mo
0 votes
Veuillez consulter cette question-réponse connexe pour découvrir plusieurs interfaces graphiques pour ghostscript qui devraient faciliter le processus de réduction de la taille des fichiers PDF.
0 votes
Notez que l'OP semble avoir accidentellement marqué la mauvaise réponse comme acceptée. Son commentaire accompagnant remercie pour la solution ghostscript, qui a résolu le problème, mais ghostscript n'apparaît pas dans cette réponse mais dans une autre.