Advanced file compression for PHP — PDF · Images · Archives
A PHP library for compressing PDFs, images, and directories with minimal dependencies. Uses Ghostscript for PDFs, PHP's ext-gd for images, and system tar for archives.
composer require gomdim-apps/slimmeruse GomdimApps\Slimmer\Optimizers\PdfOptimizer;
$ratio = (new PdfOptimizer())
->withQuality('screen')
->optimize('input.pdf', 'output.pdf');use GomdimApps\Slimmer\Optimizers\ImageOptimizer;
$ratio = (new ImageOptimizer())
->withQuality(75)
->optimize('input.jpg', 'output.jpg');use GomdimApps\Slimmer\Optimizers\CompressTar;
$ratio = (new CompressTar())
->withFormat('zst')
->optimize('/path/to/dir', 'output.tar.zst');- PHP: >= 8.2
- ext-gd: For image compression
- Ghostscript (
gs): For PDF optimization - tar: For archiving
- zstd (optional): For
.tar.zstcompression
- 📦 PDF optimization with quality presets
- 🖼️ Image compression (JPG, PNG)
- 📂 Tar archiving (
.tar.gz,.tar.zst) - 💾 In-memory I/O via
fromString()/fromStream() - 🔍 Dry-run mode for command inspection
- ⏱️ Timeout control to prevent runaway processes
- 🎯 Retention management for archives
Full documentation is available at GomdimApps.github.io/Slimmer
Key sections:
- Installation & Requirements
- PDF Optimizer
- Image Optimizer
- Tar Compression
- Streams & Buffers
- Error Handling
- Troubleshooting
Run the test suite in an isolated environment:
make testMIT
