Subset Embedded Font Tables

Strip unused alphabet characters from embedded font files to reduce weight.

100% Client-Side • 100% Free

Subset Embedded Font Tables

Strip thousands of unused alphabet glyphs from embedded fonts to radically compress PDF size with zero loss in visual quality.

Select or drop a PDF to subset font tables

Scans document text, strips unreferenced character glyphs, and assigns ISO standard subset prefixes

Choose PDF Document
In-Depth Technical Guide•8 min read•2RUN Engineering Team
100% Client-Side • Zero Upload

The Authoritative Guide to Subsetting PDF Fonts In-Browser (Optimizing File Size & Typography)

⚡How to Subset Fonts in a PDF Document In-Browser

1

1. Import Your Target PDF

Drag and drop your document into the secure workspace, or select it directly from your computer's local drive.

2

2. Analyze Embedded Font Payloads

Our client-side engine scans the document, inventories all embedded font programs, and identifies unused glyph bloat.

3

3. Execute Font Subsetting

Click 'Subset Fonts' to prune unused glyph tables, compile standard 6-character subset tags (e.g., BAAAAA+Font), and update metrics.

4

4. Download Streamlined PDF

Save your lightweight, optimized document immediately to your device with dramatic file size savings and identical typography.

Embedding fonts is essential to guarantee that a PDF document renders with 100% visual fidelity across all computers and operating systems. However, embedding complete, full-weight font families introduces a massive file size penalty. A modern Unicode font family—such as Google Noto, Roboto, or comprehensive Asian CJK typefaces—frequently contains 10,000 to 65,000 individual glyph characters, spanning complete alphabets, mathematical symbols, historical ligatures, and rare ideograms. Embedding two or three complete font files can easily inflate a simple 5-page text document from 150 kilobytes to over 25 megabytes.

The ISO 32000 specification solves this efficiency crisis through Font Subsetting. Rather than embedding the entire multi-megabyte font program, font subsetting analyzes the document content streams, identifies the exact subset of unique characters actually used on the pages (often just 60 to 80 characters for an English report), and compiles a stripped-down, lightweight font program containing only those specific glyphs.

Our client-side Subset Fonts tool prunes bloated font payloads directly inside your web browser. Utilizing high-performance WebAssembly typographic engines, you can reduce document file sizes by up to 80% while preserving pristine vector typography—with 100% client-side privacy and zero cloud uploads.

Read the full technical guide

The Mechanics of Font Subsetting in ISO 32000

Under ISO 32000-1 Section 9.6.4, an embedded font is designated as a subset by assigning it a standardized PostScript name prefix. A subset font name must consist of exactly six uppercase ASCII letters followed by a plus sign ('+') and the original font family name (for example, 'BAAAAA+Roboto-Regular' or 'XRTYUI+Helvetica-Bold').

This standardized naming convention serves two essential functions:

First, it signals to conforming PDF viewing engines that the font program is intentionally incomplete and should never be used to synthesize missing characters not present in the document.

Second, it prevents name collisions when merging multiple PDF documents that contain different subsets of the same font family (e.g., Document A contains letters A through M, while Document B contains letters N through Z). Compliance with this naming rule is mandatory under PDF/A and pre-press printing standards.

Glyph Pruning, TrueType Table Stripping, and CFF Compaction

Executing font subsetting requires deep binary surgery on the embedded font program streams:

1. Content Stream Inspection: The engine parses all page /Contents streams, tokenizes text operators (Tj, TJ), and extracts the complete inventory of referenced character codes for each font.

2. TrueType Table Reconstruction: For TrueType fonts (/FontFile2), the engine re-indexes the 'glyf' (glyph data) and 'loca' (glyph locations) tables, excising thousands of unused glyph bytecode programs. It reconstructs the 'cmap', 'hmtx' (horizontal metrics), and 'maxp' tables to reflect the reduced glyph inventory.

3. Compact Font Format (CFF) Optimization: For OpenType CFF fonts (/FontFile3), the engine strips unreferenced CharStrings and compacts the local and global subroutines (subrs), slashing the font dictionary payload down to a fraction of its original size.

4. Updating Metric Arrays: The document font dictionary's /Widths array and /FirstChar /LastChar bounds are synchronized with the subsetted metrics, ensuring that characters maintain sub-pixel positioning fidelity without visual shifts.

Commercial Font Licensing and Legal Compliance

Beyond file size optimization, font subsetting is frequently a legal requirement dictated by commercial font licensing agreements (EULAs). Most commercial type foundries (such as Monotype, Linotype, Adobe, and independent type design studios) explicitly forbid embedding full, unrestricted font files within distributed PDF documents.

Foundries mandate that fonts must be subsetted prior to public distribution to prevent recipients from extracting full commercial font binaries from the PDF and installing them as free system fonts on their computers. By stripping unneeded glyphs, our subsetting tool ensures that your organization fulfills commercial font licensing covenants and avoids copyright infringement liabilities.

Dramatic File Size Reduction for Web and Mobile Distribution

The practical benefits of font subsetting are immediate and substantial. In corporate brochures, product catalogs, and academic journals, embedded fonts frequently account for over 85% of total file size. Subsetting eliminates megabytes of redundant binary data, producing lean, lightweight documents that transmit instantly over email, load seamlessly on mobile devices, and consume minimal cloud bandwidth.

Importantly, because only unused glyphs are removed, the visual appearance of the document is 100% identical. Readers see the exact same crisp typography, identical line wraps, and perfect letterforms down to the sub-pixel level.

Air-Gapped Privacy for Sensitive Enterprise Documents

Optimizing corporate filings, confidential legal briefs, proprietary engineering manuals, or private financial records using third-party cloud conversion websites exposes sensitive organizational data to external server caching and data breach liabilities.

2run.tools operates with an absolute zero-cloud architecture. All content stream parsing, glyph inventory auditing, font binary subsetting, and PDF re-serialization execute 100% locally inside your web browser's local sandbox memory. No file data is ever transmitted across the network, ensuring total enterprise confidentiality.

Cross-Document Subset Merging and Resolving Font Name Collisions

A notorious challenge in digital publishing occurs when multiple PDF files created at different times are merged into a single multi-volume report. If Document A embedded a subset of 'Roboto-Bold' containing letters A through M, and Document B embedded a different subset containing letters N through Z, merging them naively under the same font name causes letters on one of the documents to disappear or display as blank rectangles.

The ISO 32000 standard prevents this by requiring unique 6-character uppercase tags for each subset (e.g., 'AAAAAA+Roboto-Bold' vs. 'BBBBBB+Roboto-Bold'). Our subsetting engine ensures that each embedded subset is assigned a distinct cryptographic namespace tag. When merging or compiling multi-chapter publications, each subset operates in an isolated resource dictionary, completely eliminating font collision risks and ensuring flawless typography across all pages.

Memory Optimization and Fast Rendering on Low-Powered Mobile Devices

In addition to saving bandwidth, font subsetting dramatically accelerates page rendering on smartphones, e-ink tablets, and embedded devices. When a mobile PDF viewer encounters a 25 MB document containing full font families, it must allocate significant mobile RAM to decode and cache thousands of unreferenced bezier glyph curves in memory, often resulting in sluggish scrolling, battery drain, or unexpected tab crashes.

Subsetting slashes the memory footprint of embedded fonts by up to 95%. Mobile operating systems (iOS and Android) can parse the streamlined font tables instantaneously, delivering butter-smooth 60 FPS scrolling and immediate page turns even on budget mobile hardware.

💡Pro Tips for PDF Font Subsetting

  • •Subset fonts after all editorial revisions and text additions are complete; adding new text later might require characters that were pruned.
  • •Check your PDF properties in Adobe Acrobat (Ctrl+D > Fonts tab) to verify that font names now display the 6-character subset prefix tag.
  • •Combine font subsetting with image compression to achieve the maximum possible file size reduction for email attachments.
  • •Ensure the document's /ToUnicode CMaps are preserved during subsetting to maintain full text search and copy-paste functionality.

🛡️Glyph Extraction, Table Reconstruction, and Metric Array Synchronization

During execution, our WebAssembly engine parses the page /Contents streams to build a Set of all used character codes for each font. It loads the raw font program stream from /FontDescriptor /FontFile2 or /FontFile3, parses the OpenType/TrueType table directory (sfnt), and extracts the glyph outline data for the active character codes. It reconstructs the 'glyf', 'loca', 'cmap', and 'hmtx' tables, omitting unreferenced glyphs. It generates a randomized 6-letter tag (e.g., 'ABCDEF+'), updates /BaseFont, synchronizes the /Widths array and /FontBBox, and writes the newly compacted font stream back into the PDF object graph in client RAM.

Stack: WebAssembly • Multi-threaded Web Workers • HTML5 Canvas API

Privacy: Files never leave your device or touch a cloud buffer; analytics run only with your consent.

Why choose client-side browser tools?

When you compress an image or merge a PDF on 2run tools, the code executes inside your browser tab using WebAssembly and Web Workers. We never stream your bytes to a remote cloud server. Your private financial reports, personal photos, and legal agreements never leave your device.

Total PrivacyIn-Browser
Instant ProcessingFast RAM
Truly UnlimitedZero Limits

Frequently Asked Questions About Subsetting PDF Fonts

What is the difference between embedding a font and subsetting a font?▾

Embedding a font includes the entire font program (all thousands of characters). Subsetting only embeds the specific letters and symbols actually used in the document, drastically reducing file size.

Why do subset fonts have random letters like 'BAAAAA+' in front of their name?▾

The ISO 32000 standard mandates that subsetted fonts include a unique 6-letter uppercase tag followed by a plus sign to indicate that the font is an intentional subset and prevent font name conflicts.

Will subsetting a font change how my document looks?▾

Not at all. The visual typography, letterforms, and line wraps remain 100% identical because all characters used on the pages are fully preserved.

Can someone edit the text in a subsetted PDF later?▾

They can edit existing characters, but if they try to type a letter that was not used in the original document (e.g., the letter 'Z' if it never appeared), that character cannot render because its glyph was pruned.

Is font subsetting required by commercial font licenses?▾

Yes! Many commercial font licenses (EULAs) legally mandate subsetting for document embedding to prevent third parties from extracting full commercial font files from the PDF.

Are my files uploaded or stored on any server?▾

Never. All content stream analysis, font pruning, and PDF recompilation occur 100% locally inside your web browser. No document data is ever sent across the network.

Can I merge multiple documents that have subsetted fonts?▾

Yes! Because our tool assigns unique ISO 6-letter prefix tags to every subset, merged documents will not suffer from font name collisions or missing glyph errors.

Does font subsetting work with OpenType (OTF) fonts?▾

Yes! Our engine supports both TrueType (.ttf) and OpenType CFF (.otf) font programs, compacting the underlying CharStrings and metric tables with equal precision.

Sites Loading Under 0.8s
100/100 Lighthouse web engineering
Audit
Dev Arm for Design Agencies
White-label • Bilateral NDA
Partner
Technical SEO by Code
Deep Schema • Zero waste
Scale SEO
Custom Web Apps & SaaS
100% code ownership • Edge scale
Build
Turn Traffic into Sales
+34% sales lift • Fix bottlenecks
Audit