19

Background

I want to decrease size of the .pdf filled with images. In Preview in can be dome through Export and set Quartz Filter-> Reduce File Size before saving.

Preview-Export

Problem

The file indeed decreased from ~30MB to 0.37MB.

But the result has such poor quality that images are barely readable.

Question

I saw an examples of using Image Magic to achieve that - but can it be done by Preview without any external software?

25

The problem is - the default filter used during conversion has very low conversion settings.

Thankfully, a custom filter can be added.

Adding custom filter step by step

  1. Create new directory (if you don't have it) - /Library/Filters
  2. Add there new filter file with unique filter - f.e. Reduce Size with good quality.qfilter
  3. The file should contain XML with new filter - you can base on the /System/Library/Filters/Reduce File Size.qfilter file or use my below example. Change compression setting, image size and add unique display name for your filter.

Filter file structure/example

I marked key settings by comments.

<?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>

Result

Select your new filter when exporting file.

enter image description here


Helpful articles:

5

You can create your own Filter to reduce the image data size in the PDF, using Apple's built-in ColorSync Utility. Then select the Filter in Preview's Export.

(NB: For some reason "Export As PDF" doesn't show the Filters, but Export, choosing PDF as the file format, does.)

enter image description here

4

Preview is very limited in its capabilities. (Although @michalczukm's answer might well be worth a try for simple documents, e.g. those PDFs with not much structure, without Bookmarks. Also: while you may not visually discern any quality loss, it is still a lossy procedure, but with less aggressive settings then the original Quartz-filter.)

Instead of Image Magick or Preview I suggest to try:

  • Adobe Acrobat (expensive)

or the libre/free

  • GhostScript with the following parameters:

    gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dCompatibilityLevel=1.7 -dNOPAUSE -dQUIET -dPDFSETTINGS=/prepress -sOutputFile=Name_of_Outputfile.pdf To_Reduce_Input.pdf

You may play with these settings. Those given here should not perform any lossy conversions or strip away important document structures. Meaning: most of the time the savings gained might be very good, but sometimes the file size even increases.

Ghostscript is available through a number of venues for macOS. The related muPDF is even available on the App Store.

If you created the PDF yourself then it would be obviously best to losslessly reduce the images before including them into the document (the PDF). Adjusting the image size in terms of pixel count/resolution appropriate for the intended output medium might produce the biggest savings.

  • the usage of ghostscript looks great for larger and more complex scenarios. For simple documents (that was my case) filter was quick to use and good enought. PS notice that both question and first answer are mine :) – michalczukm Sep 7 '17 at 9:56
2

As per michalczukm answer, a quartz filter can solve this. I had created my own and shared it on Github. You can install it easily with a single command line. It doesn't install any software, just the quartz filter only.

https://github.com/superman-lopez/compressjpeginpreview

1

You can use this website: https://smallpdf.com/compress-pdf to shrink PDFs to a really small size. The PDF quality is still really good even after the compression.

  • Nice platform, but unfortunately timed out for me 4k page PDF (3+ GB) > "Compressing your PDF File took too long. Maximum compression time is currently limited to 10 Minutes." – philshem Dec 4 '18 at 10:17
0

If you have a pdf which is version 1.6 or 1.7, you can use the duplicate setting in Preview. Preview will save the file as a 1.4 pdf and save about 50% in file size. As far as I can tell there is no loss of quality. No need to use the export - reduced file size unless you want further savings.

  • That might work, OK, for some documents intended for print. But the reasoning is doubtful. Usually increasing PDF version allows for better compression etc. Do you realise that using Preview in this way is lossy, e.g. re: document structure: you'll loose bookmarks for example? – LаngLаngС May 17 '18 at 22:23
  • I'm just describing some findings from working with Preview and PDFs. I don't understand why this works the way it does but that's what I learned.. – jmh May 18 '18 at 0:15
  • Well i cant get this to repeat with a newer version of preview. i don;t know what happened. I'm sure my earlier analysis was correct. – jmh May 18 '18 at 1:31
  • I'm confident your observation was correct (the "explanation" likely not). That's why this A is still OK & the method worth a shot. There are quite a few very awful PDFs out there. Even from really big publishers. (Have you tried with the same PDFs but with newer Preview?) Since the PDF-spec itself is a mess: Apart from ensuring to control creation from the start, the "best" method has to be tried out, almost each time… – LаngLаngС May 18 '18 at 1:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .