by Howard Fosdick ©RexxInfo.org
Updated for 2025
Excluding HTML, PDF files are probably the most popular document format on the web. Unfortunately, they’re not compact.
For example, I like to download free ebooks. A quick glance at my ebook directory shows that its 75 PDF files consume about 500 megabytes. On average, that’s over 6.6 meg per PDF file.
Couldn’t I save some storage space by compressing those files?
What if I want to send a bundle of them through email? Or host them for download on a website? Transmission would be faster if these files were made smaller.
This article shows a simple way to reduce PDF file size. The benefit is that it shrinks your PDFs transparently – without altering the data content in any way.
Plus, you can compact many PDF files with a single command.
Compare this to the alternatives. You could upload your PDF files to one of the many online file compression websites. Several are free, but you risk the privacy of your documents by uploading them to an unknown website.
More importantly, most websites shrink PDFs by tampering with the images they contain. They either change their resolution or their sizes. So you trade lower image quality to get smaller PDF files. That’s the same trade-off you face in using interactive apps like LibreOffice, or Ghostscript line commands like gs and ps2pdf.
The technique we’ll illustrate in this article compacts PDFs without altering either the images they contain or their data content. And, you can reduce many PDFs with a single line command. We'll even provide a little script that can shrink all your PDF files on your computer! Let’s get started.
Before you spend time and effort compacting PDF files, identify your largest ones and delete those you don’t need. This command lists the 50 biggest PDFs in its directory tree, ordered by descending size:
find -type f -exec du -Sh {} + | grep .pdf | sort -rh | head -n 50
From the output, you can easily identify and eliminate duplicates. You can also delete obsolete files. Getting rid of these space hogs yields big benefits.
Lastly, you now know which PDFs are the high payback candidates for the reduction technique we’ll now cover.
We’ll use the open source Minuimus program to compact PDFs. Minuimus is a generalized command line utility that performs all sorts of useful file conversions and compressions.
To shrink PDFs, Minuimus unloads and then rebuilds them, gaining numerous efficiencies along the way. It does this transparently, without altering your data in any way.
To use Minuimus, download its files from either Github or its original source. Then install it as its documentation explains, with these commands:
make deps # This apt-get installs all required supporting packages
make all # Compiles helper binaries
make install # Copies all needed files to /usr/bin
To shrink a PDF file, run Minuimus to process it, like this:
minuimus.pl pdf_file_name.pdf
When it runs, Minuimus immediately makes a backup of your original input file. It only replaces the input file with its compacted version after it fully verifies data accuracy by comparing before and after bitmaps representing the data.
A big benefit to Minuimus is that it validates any PDF file it works on. It can sometimes correct malformed PDFs.
Also, I’ve found that it gives intelligent, helpful error messages if it encounters any problems.
For example, on one of my computers, Minuimus said that it couldn’t properly invoke a utility it uses called leanify. So it couldn't optimally shrink the files. Yet it still shrunk the PDFs to the extent possible, and ran to successful completion.
Here’s how to compact many files in one command. This compresses all the PDF files in a directory:
minuimus.pl *.pdf
If you have lots of PDFs to convert, Minuimus might process for a while. So if you’re converting hundreds of PDFs, for example, you might want to run Minuimus as a background job. Schedule it for off-hours through your GUI scheduler or as a Cron job.
Be sure to redirect its output from the terminal to files so that you can easily review it later:
minuimus.pl *.pdf 1>output_messages.txt 2>error_messages.txt
Want to shrink all the PDF files in a specific directory and all of its subdirectories? Or shrink all the PDF files on your computer?
Here's a code snippet that will do that. It shrinks all the PDF files in a given directory and all its subdirectories:
#!/bin/bash
find . -type d | while read dir
do
save_dir=`pwd` # save the current working directory
cd "$dir" # change to the directory read in by the READ command
echo -e "\n***** Processing directory:" "$dir" # tell what directory we're processing
minuimus.pl *.pdf # process all the PDFs in the directory
cd "$save_dir" # change back to the original directory `
done
This code traverses a directory structure and shrinks all the PDFs it finds in that tree.
If you wanted to shrink all your PDF files on your computer, you could run this code from your Home directory.
You can find more information about how to traverse directories and subdirectories in my article on that topic here.
There’s no way to predict how much space Minuimus can save. That’s because PDFs contain anything from text to images of all different kinds. They vary enormously.
I ran Minuimus on my download directory of PDF ebooks. The directory contained 75 PDFs consuming about 500 megabytes. Minuimus reduced it by about 11%, to about 445 megabytes. That’s really impressive for an algorithm that doesn’t change the data.
Across a large group of PDFs, size reduction of 10% to 15% appears common. The biggest files often shrink the most. Processing a collection of big PDFs often reclaims much more space than processing many small PDFs.
Some PDF files show really dramatic space savings. That’s because some applications create absolutely hideous PDFs. I call those files “PDF monsters.” You can slay them with a single Minuimus command.
For example, while writing this article, Minuimus knocked an 85 megabyte PDF down to 32 meg. That’s just 38% of its original size. The program slimmed several other monsters by 50%, recovering tens of megabytes.
This is why I began this article by introducing a command to list your biggest PDF files. If Minuimus identifies a few monsters among them, you can reclaim major disk space.
PDF files are useful and ubiquitous. But they often consume a good deal of storage space.
Minuimus makes it easy to reduce PDF storage space by 10% to 15% – without altering the data. Perhaps its biggest benefit is in identifying and transforming malformed “PDF monsters” into smaller, more manageable files.