FyPDF — PDF & file conversion suite · Optimize

Pour the file smaller — without flattening the words underneath.

Most online compressors ship the cheap trick: flatten every page to a giant image, brag about the size drop, and quietly destroy the text underneath. The distillery does the slow version. Five stages, five presets, fonts subsetted instead of stripped, alpha and ICC profiles kept on the way through. Same document, lighter file.

  • Text stays selectable
    Compression never re-rasterises body type. Bullet points, paragraphs, and footnotes remain real text the next reader can copy or search.
  • Fonts subsetted, not killed
    Embedded fonts get pruned to the glyphs your document actually uses — same metrics, same rendering, smaller payload.
  • Alpha & ICC profiles intact
    Transparent images stay transparent. Embedded color profiles ride along so brand colors don't drift between original and compressed.
  • Reversible by intent
    We never overwrite your source. The output is a separate PDF you can compare, accept, or throw out — and re-run with different settings.
charge · raw export.pdf
48.6 MB
01Object analysis
02Image recompression
03Font subsetting
04Stream optimization
05Metadata cleanup
yield · email pour.pdf
6.2 MB−87%
charge · 48.6 MB
yield · 5 stages · 6.2 MB
The Distillery · 5 stages live
In-browserCloud-assist
The Five Pours

One engine, five honest trade-offs.

Every pour names what it changes and what it keeps — written down so the trade-off is on the menu, not in the fine print. Pick the one that matches the destination.

The Five Pours · Tasting MenuOptimize Track · 5 pours · Issue 04
No.
Pour
Target
Trade-off
Use
01Pour
Email pour
Send
TargetUnder 5 MB

The smallest pour that still survives an inbox attachment limit and renders crisp on a thumbnail preview.

Changes
  • Image DPI
  • 96
  • Heavy JPEG
  • Aggressive subsetting
Keeps
  • Text
  • Vectors
  • Hyperlinks
  • Searchable metadata
02Pour
Web pour
Embed
Target−50% to −65%

Balanced for site embeds and viewer previews — small enough to load on slow connections, sharp enough for retina displays.

Changes
  • Image DPI
  • 144
  • Smart JPEG/WebP
  • Mid-tier subsetting
Keeps
  • Vector type
  • Layered structure
  • Tag tree
03Pour
Print pour
Press
Target−25% to −40%

Modest reduction for press-bound work — lossless on vectors, careful on rasters, ICC profiles untouched.

Changes
  • Image DPI
  • 300
  • Lossless re-encode
  • Stream packing
Keeps
  • ICC profiles
  • Bleeds
  • CropBox
  • Alpha
  • Vector strokes
04Pour
Archive pour
Store
Target−5% to −15%

Lossless re-pack only — strip the metadata cruft, recompress the streams, leave every glyph and every pixel untouched.

Changes
  • Stream re-pack
  • Junk metadata strip
  • Index rebuild
Keeps
  • Pixels (1:1)
  • All fonts
  • Annotations
  • Document tags
05Pour
Custom pour
Tune
TargetYour call

Open the panel, dial each stage. Set image DPI, font subsetting strength, ICC handling, alpha treatment, and metadata scope per file.

Changes
  • Per-stage controls
  • Preview before save
  • Per-document profiles
Keeps
  • Whatever you tell it to
  • Side-by-side preview before commit
Send · best for

Newsletter PDFs · Outbound proposals · Vendor invoices · Mobile inbox previews

Target · Under 5 MB
Embed · best for

Docs sites · Sample PDFs in viewers · Knowledge-base attachments

Target · −50% to −65%
Press · best for

Pre-press hand-off · Tactile deliverables · Brand-critical exports

Target · −25% to −40%
Store · best for

Long-term archives · Audit-ready masters · Legal originals

Target · −5% to −15%
Tune · best for

Repeating workflows · Per-team profiles · Edge cases the presets don't fit

Target · Your call
The Fidelity Manifesto

What the distillery never burns off.

Four promises sealed onto every pour. The cheap path is to flatten a PDF to a giant image and brag about the size drop — these are the four things you give up when you do that, written down so you don't have to find out the hard way.

SealPromise · 01

Text stays selectable

FyPDF never re-rasterises body text to shave bytes. Paragraphs come back as paragraphs, headings as headings, and the next reader can still copy a quote or search for a phrase. The cheap path is to flatten everything to JPEG and call it compressed — these stamps are the line we don't cross.

SpecVector text preserved · ToUnicode CMaps retained · Search index intact in viewers that support it.
SealPromise · 02

Embedded fonts are subsetted, not killed

Where a font is embedded, its in-use glyph set is preserved and the rest of the font file is dropped. New rendering uses the same metrics, the same kerning pairs, and the same hinting — your document looks the same, weighs less.

SpecSubset map per page · OpenType / TrueType features kept · Substitution tables intact for ligatures and accents.
SealPromise · 03

Alpha and ICC profiles intact

Image transparency survives the recompression pass. Embedded ICC profiles ride along, so brand reds stay brand reds and skin tones don't drift between source and output. Print pours preserve OutputIntents so the press driver gets the colour space it expects.

SpecAlpha channel preserved on PNG and TIFF inputs · Embedded ICC retained · OutputIntent kept on print pours.
SealPromise · 04

Outputs are real PDFs

The compressed file opens cleanly in Adobe, Preview, Foxit, browser readers — same document, smaller payload. It re-edits, re-merges, re-extracts in the rest of the suite without quality loss. No flatten-on-save, no zip-of-pages, no proprietary container.

SpecPDF/A-compatible · Re-editable in subsequent operations · Indexes in any document search · No proprietary wrappers.
Stages of the Pour

Read the engine one cut at a time.

Five stages, in order. Each pour can stop at any of them — Archive stops after stage 04, Email runs the full set. Below, what each stage actually does, what it preserves, and what it changes.

01
StageRead the document model

Object analysis

Before anything is reduced, the engine walks the PDF object graph: pages, content streams, resource dictionaries, font tables, image XObjects, structure trees. The pour can't shrink what it doesn't first understand, and skipping this step is what produces the broken outputs cheap compressors leave behind.

Preserves
  • Outline tree, named destinations, internal links
  • Tagged structure (PDF/UA accessibility tree)
  • Annotations, redactions, form fields
  • Embedded color profiles (ICC) and OutputIntents
Transforms
  • Builds an internal map of every reusable resource
  • Detects duplicated images / fonts across pages
  • Identifies orphan objects safe to drop later
TechniquesCross-reference walkContent-stream parseResource-graph build
Stage 01 of 05
Pages
Outline
Resources
Tags
Fonts
Images
ICC
Streams
object graph · resource map
02
StageRe-encode the rasters

Image recompression

Image XObjects get re-encoded with the codec best suited to the content: photographs to JPEG/WebP at the target quality, line art to PNG with palette reduction, scans to JBIG2 where supported. DPI is stepped down to the destination's actual rendering target — 300 for print, 144 for web, 96 for email — never above what the page will display at.

Preserves
  • Alpha channel where original was transparent
  • Per-image color profile (ICC) intact
  • Vector overlays not touched by the raster pass
  • Original aspect ratio and orientation flags
Transforms
  • Photograph encoders → JPEG / WebP at target quality
  • Line-art encoders → indexed PNG palette
  • DPI re-ranged to the destination's actual render size
  • Duplicated images deduped to one resource
TechniquesJPEG / WebP / JBIG2Palette reductionResamplingDedup index
Stage 02 of 05
Photo300
JPEG144 DPI
−71%
Photo300
WebP96 DPI
−84%
Line artlossless
PNGindexed
−42%
ScanGRAY
JBIG2JBIG2
−68%
codec map · DPI floor
03
StageDrop unused glyphs

Font subsetting

Most PDFs carry the entire font file even when the document only uses 87 glyphs from it. The pour reads which glyphs each text run actually references and rebuilds the font subset to contain only those — same metrics, same kerning pairs, same rendering, an order of magnitude less weight in the final file.

Preserves
  • Glyph metrics and kerning
  • Hinting tables for display rendering
  • OpenType features used by the document
  • Substitution tables for accent / ligature pairs
Transforms
  • Font tables pruned to in-use glyph set
  • Duplicate font references collapsed across pages
  • Embedded subsets re-encoded at minimum payload
TechniquesTrueType subsetOpenType subsetGlyph-index mapToUnicode CMap
Stage 03 of 05
Garamond Pro · in-use map25/80
Pruned · 5569%
glyph subset · 25 of 80
04
StageRecompress content streams

Stream optimization

Content streams (the page-drawing instructions) are typically Flate-compressed with default settings. The pour walks each stream and applies the most effective filter chain for the data inside — Flate at higher levels for text-heavy streams, ZSTD where the reader supports it, RunLength for repetitive vector instructions. The result is the same drawing instructions, dictated more concisely.

Preserves
  • Drawing instructions and text positioning
  • Page dimension and rotation flags
  • Inline image positions and z-order
Transforms
  • Flate streams re-deflated at level 9
  • Repetitive instruction blocks RLE-collapsed
  • Font and image references unified across pages
TechniquesFlate / ZSTDRunLengthASCII85 stripObject-stream packing
Stage 04 of 05
page-1220 KB78 KB
page-2312 KB110 KB
page-3188 KB64 KB
fonts96 KB32 KB
images410 KB142 KB
flate level 9 · stream re-pack
05
StageStrip the cruft

Metadata cleanup

Most PDFs accumulate metadata that nothing reads — software trails, encoding hints, abandoned linearisation tables, cross-reference fragments from earlier saves. The final pass strips junk metadata while keeping anything functional (XMP author data, permissions, structural tags) and rebuilds the cross-reference table cleanly so the output is the smallest valid file the spec allows.

Preserves
  • XMP author / title / keywords
  • PDF permissions and security flags
  • Structural tag tree (PDF/UA)
  • Document-level OutputIntents
Transforms
  • Soft-deleted objects pruned
  • Cross-reference table rebuilt as one stream
  • Linearisation hint table dropped or rebuilt
  • Encoding-hint cruft stripped
Techniquesxref rebuildlinearisationXMP retainJunk-tag strip
Stage 05 of 05
Kept
  • · XMP author
  • · Title / keywords
  • · PDF/UA tags
  • · OutputIntent
  • · Permissions
Stripped
  • Stale linearisation
  • Old xref fragments
  • Encoding cruft
  • Soft-deleted objects
  • Vendor trail metadata
xref rebuilt · single object stream · linearised
kept · stripped · xref rebuilt
Before · After

Four pours, honest yields.

Four real PDFs that arrive on the still. Charge weight on the left, yield weight on the right, the pour and reduction stamped in the gutter — and an honest takeaway under each.

Chargeinput
48.6 MB

Sales deck (raw export)

Hi-res hero photography on every slide, embedded full-fat fonts, untouched JPEGs at 600 DPI.

.pdf
§
Compress PDFImage-heavy product deck87%
Yieldoutput
6.2 MB

Email-pour deck

Same fonts subsetted, photographs re-encoded at 144 DPI, identical text and vector overlays.

.pdf
§

TakeawayLands in the inbox in one go — and reads on a phone preview without pinch-to-zoom.

Chargeinput
82.0 MB

OCR'd annual report

Two hundred pages scanned at 600 DPI, OCR layer per page, deep colour images on the financials.

.pdf
§
Compress PDFScanned annual report86%
Yieldoutput
11.4 MB

Web-pour report

OCR text layer kept verbatim, scanned images re-encoded with JBIG2, ICC profiles preserved.

.pdf
§

TakeawayLoads in the browser viewer, stays searchable, reads through OCR exactly the same on the way out.

Chargeinput
26.3 MB

New-hire pack

Twelve sections, dozens of duplicate logo images, three different fonts embedded in full.

.pdf
§
Compress PDFMulti-MB onboarding kit84%
Yieldoutput
4.1 MB

Print-pour pack

Logos deduped to one resource, fonts subsetted, vector lines untouched, print bleeds retained.

.pdf
§

TakeawaySame kit lands ready for the print run and ready for the welcome email — one file, two destinations.

Chargeinput
8.7 MB

Mechanical spec sheet

Almost all vector — line drawings, dimension callouts, small embedded font set, almost no rasters.

.pdf
§
Compress PDFVector-heavy spec sheet18%
Yieldoutput
7.1 MB

Archive-pour spec

Lossless stream re-pack, junk metadata stripped, vectors and fonts pixel-identical to source.

.pdf
§

TakeawayWhen the source is already lean, the pour is honest about it — small reduction, lossless guarantee.

Who works the distillery

Five regulars at the still.

The personas who reach for the distillery weekly — and the specific pours they choose. Find the closest match to the file on your desk this morning.

Persona · 01The communicator

Decks that survive the inbox cap

The team finishes a 60-page client pitch by Thursday night. Outlook caps at 25 MB; the export is 70. Compression has to land it under the line by morning without re-rendering every chart.

Preferred pours
  • Email pour · 60 → 4.2 MB · text + vectors intact
  • Custom pour · Tune image DPI per slide for next batch
Persona · 02The webmaster

Page-weight matters every render

Sample PDFs sit on the docs site, served on every viewer load. Each MB pulls Lighthouse scores down on every analytics report. Compression has to hold visual fidelity at retina but cap weight per file.

Preferred pours
  • Web pour · Sample docs · −62% weight
  • Custom pour · WebP-out · 144 DPI floor for retina
Persona · 03The print prepper

Modest reduction, no fingerprint on the colour

Press wants a PDF/X file under 30 MB — but every brand colour and every soft proof has to ride along. ICC profiles, alpha edges, vector strokes can't shift one shade between source and press.

Preferred pours
  • Print pour · −32% · lossless vectors · ICC kept
  • Custom pour · Stream re-pack only · no raster pass
Persona · 04The archivist

Long-term storage, byte-identical inside

Audit masters live in cold storage for seven years. Reduction has to be lossless — strip junk metadata and rebuild the cross-reference, leave every glyph and every pixel exactly as the regulator received them.

Preferred pours
  • Archive pour · −12% · pixel-identical · xref rebuilt
  • Custom pour · Disable image pass · keep all metadata
Persona · 05The mobile-first designer

Loads on slow connections, reads on small screens

Users open product documents on rural connections through low-end Android browsers. Compression has to chase mobile-first first — small files, vector-text-clean, JPEG/WebP for photographs, no decorative bloat.

Preferred pours
  • Email pour · Mobile-first · WebP rasters
  • Web pour · Embed in viewer · 144 DPI cap
Common Questions

Before you pour anything, a few honest answers.

Question Index
Q01 · 01 / 07

How small can you make my PDF?

It depends on what's inside. Image-heavy decks routinely come back at a third or less of their input size with no visible loss. Vector-heavy PDFs (spec sheets, contracts, line drawings) reduce more modestly — sometimes only 10–20% — because the source is already mostly text and instructions, not big rasters. The honest answer is the engine reduces what it can without lying about what it can't.
Distillery Reference · 01
7 questions in the distillery FAQIssue 04 · Optimize
Pour the file

The still is hot. Tell it which pour to draw.

Drop the file, pick a pour, take the result. Same engine across all five presets — fonts subsetted, ICC profiles honored, text-layer kept selectable, no flatten on the way out.

Pour dispatch · 5 presets
Issue 04
All pours · in-browser default · text intact
One Suite · Seven Tracks · Twenty-eight Tools and CountingStart with the surface →