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