pts / pdfsizeopt

PDF file size optimizer
GNU General Public License v2.0
750 stars 65 forks source link

Ghostscript compatibility #157

Open pts opened 1 year ago

pts commented 1 year ago

TL;DR Please install pdfsizeopt by following the installation instructions on https://github.com/pts/pdfsizeopt . By doing so, pdfsizeopt will use Ghostscript 9.05 bundled with it, and it will work.

Currently pdfsizeopt uses Ghostscript for various steps (see https://github.com/pts/pdfsizeopt/issues/63 for details). Because of feature removals and changes in newer versions of Ghostscript, only older versions of Ghostscript work with pdfsizeopt. Thus upgrading Ghostscript (as used by pdfsizeopt) would break the optimization of some PDFs. It's impossible to fix this (quickly) within pdfsizeopt, because some features used by pdfsizeopt have been removed from newer Ghostscript versions.

This shouldn't be a problem for most users, because pdfsizeopt, when installed as described at https://github.com/pts/pdfsizeopt, contains an instance of (older) Ghostscript which is fully compatible with pdfsizeopt.

Most of the problematic Ghostscript features are used by font optimization, which can be disabled by using pdfsizeopt --do-optimize-fonts=no. This will make pdfsizeopt succeed, but it will keep the output PDF larger than necessary (because font opitimization steps are skipped).

More details about individual Ghostscript versions:

rbubley commented 1 year ago

I've been using 9.14.1 (patched) successfully for many months.

pts commented 1 year ago

@rbubley: pdfsizeopt has been officially ported to macOS with 64-bit Intel x86 processors. (More details here: https://github.com/pts/pdfsizeopt/issues/158) This port includes official Ghostscript 9.05 binaries within https://github.com/pts/pdfsizeopt/releases/download/2023-02-20/pdfsizeopt_libexec_darwinc64-v3.tar.gz . Installation instructions on https://github.com/pts/pdfsizeopt have also been updated.

If you encounter any problems, please file an issue!