Reduce PDF Size with Mac Preview


I found myself in a bind with a PDF document that was 112 MB in size when I photo copied all my housing papers into PDF files and combined them into one pdf.

cd folder
convert *.JPG papers.pdf

The file was impossible to email or even display in Google Drive due to its sheer size. I have found a work around to make it happen. Open the PDF you want to downsize in the Preview Mac OS X application.

You'll notice that when you go to the file -> export option, you only have Reduce File Size. I tried this and it made my pdfs nearly unreadable and extremely fuzzy. So the trick is to copy the Reduce File Size.qfilter found in /System/Library/Filters to /Library/Filters.

cp /System/Library/Filters/Reduce\ File\ Size.qfilter /Library/filters/Reduce\ File\ Size \Better.qfilter   

Make two copies of this file. Append Better to one and then Best to the other. We will change the Name String at the end, and the ImageSizeMin/Max values.

Better should look like this.

<?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>
                <real>0.0</real>
                <key>ImageCompression</key>
                <string>ImageJPEGCompress</string>
                <key>ImageScaleSettings</key>
                <dict>
                    <key>ImageScaleFactor</key>
                    <real>0.5</real>
                    <key>ImageScaleInterpolate</key>
                    <true/>
                    <key>ImageSizeMax</key>
                    <integer>1508</integer>
                    <key>ImageSizeMin</key>
                    <integer>508</integer>
                </dict>
            </dict>
        </dict>
    </dict>
    <key>FilterType</key>
    <integer>1</integer>
    <key>Name</key>
    <string>Reduce File Size Better</string>
</dict>
</plist>

Best should look like this.

<?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>
                <real>0.0</real>
                <key>ImageCompression</key>
                <string>ImageJPEGCompress</string>
                <key>ImageScaleSettings</key>
                <dict>
                    <key>ImageScaleFactor</key>
                    <real>0.75</real>
                    <key>ImageScaleInterpolate</key>
                    <true/>
                    <key>ImageSizeMax</key>
                    <integer>3508</integer>
                    <key>ImageSizeMin</key>
                    <integer>1028</integer>
                </dict>
            </dict>
        </dict>
    </dict>
    <key>FilterType</key>
    <integer>1</integer>
    <key>Name</key>
    <string>Reduce File Size Best</string>
</dict>
</plist>

After doing both of these modifications, it will now show up in your exports options. Better reduced my file size down to 7 MB and Best reduced my file size down to 22 MB.