Shrink PDF
Make your PDF file smaller by selecting a quality level and downloading the compressed PDF immediately. All processing happens locally in your browser tab.
Drop a PDF here or click to browse
How it works
Lossless shrinking re-serialises the source PDF with pdf-lib so duplicate objects and verbose metadata collapse into shared object streams. The image-quality settings call pdfjs-dist to render each page on a Canvas at a tuned scale, then export the canvas as a JPEG that pdf-lib glues into a new compact PDF. The smaller file is downloaded the moment processing finishes.
Processing runs in your browser
Shrinking happens in your browser tab using pdf-lib and PDF.js bundled with the page. No PDF data is uploaded, queued, or stored on a remote service. The slimmer file appears in your downloads as soon as the operation completes. You can check this yourselfin your browser's DevTools Network tab.
Related operations
To stitch multiple PDFs into one before compressing, try merge PDF. For pulling out a subset of pages, use split PDF. To extract pages as standalone images, see PDF to image.
Frequently asked questions
- What quality level should I choose?
- For text-heavy documents, use Lossless, it reduces overhead without touching content. For scanned documents or PDFs with many images where file size matters more than text quality, try Medium or Low.
- What does 'text becomes non-selectable' mean?
- Image-based modes (High, Medium, Low) convert each PDF page to a JPEG and embed the image. The resulting PDF looks the same visually but the text cannot be selected, copied, or searched.
- How do I share a large PDF by email?
- Most email providers limit attachments to 10–25 MB. Try the Medium quality setting, it usually brings PDFs well within email attachment limits while keeping the file legible.
- Can I shrink a multi-page PDF?
- Yes. All pages are processed in one pass. Each PDF can be up to 100 MB. Larger files are rejected with a clear error before any processing starts.
- Are my files private?
- Yes. The PDF is loaded into browser memory only. No file data is sent to our servers at any point. The Content Security Policy on this site actively blocks all outbound connections.