Réduire la taille des PDF sous MacOS sans perte de qualité

· 2 minutes de lecture
Réduire la taille des PDF sous MacOS sans perte de qualité

Je voulais réduire la taille d'un fichier .PDF rempli d'images. J'ai utilisé la méthode classique dans l'Aperçu : Fichier puis fonction Exporter et régler le filtre sur Réduire la taille du fichier.

⚠️ Problème :

Le fichier a bien diminué de taille  jusqu'à x100  mais le résultat est de si mauvaise qualité que les images sont à peine lisibles.

Après plusieurs recherche j'ai trouvé la solution 😄

Créer un nouveau filtre :

  • Créer le répertoire (s'il n'existe pas déjà)  /Library/Filters
sudo mkdir /Library/Filters
  • Créer le fichier "Reduce Size with good quality.qfilter"
sudo vi "/Library/Filters/Reduce Size with good quality.qfilter"
  • Y copier le texte suivant
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Domains</key>
    <dict>
        <key>Applications</key>
        <true/>
        <key>Printing</key>
        <true/>
    </dict>
    <key>FilterData</key>
    <dict>
        <key>ColorSettings</key>
        <dict>
            <key>DocumentColorSettings</key>
            <dict>
                <key>CustomLHSCorrection</key>
                <array>
                    <integer>8</integer>
                    <integer>8</integer>
                    <integer>8</integer>
                </array>
            </dict>
            <key>ImageSettings</key>
            <dict>
                <key>Compression Quality</key>
    <!-- ====== Set your custom quality <0,1> ======= -->
                <real>0.75</real>
                <key>ImageCompression</key>
                <string>ImageJPEGCompress</string>
                <key>ImageScaleSettings</key>
                <dict>
                    <key>ImageScaleFactor</key>
    <!-- ====== Set your scale factor <0,1> ======= -->                 
                    <real>0.75</real>
                    <key>ImageScaleInterpolate</key>
                    <true/>
    <!-- ====== Set what sizes your images can reach ======= -->                    
                    <key>ImageSizeMax</key>
                    <integer>1684</integer>
                    <key>ImageSizeMin</key>
                    <integer>1200</integer>
                </dict>
            </dict>
        </dict>
    </dict>
    <key>FilterType</key>
    <integer>1</integer>
    <key>Name</key>
<!-- ====== Set unique display name for your filter ======= -->
    <string>Reduce Size Good Quality</string>
</dict>
</plist>

Et voilà un nouveau filtre existe