Skip to content

Ream

Convert Word (.docx) and Excel (.xlsx) to PDF — in the browser, from the ECMA-376 and ISO 32000 specifications. No LibreOffice, no headless Office, no commercial SDK. Pure TypeScript, Uint8Array in and Uint8Array out.

From the spec

Built directly from ECMA-376 (OOXML) and ISO 32000 / 19005 (PDF / PDF/A) — not a wrapper around LibreOffice, headless Office, or any commercial SDK. Existing implementations are read as a reference, never a dependency.

Browser-first

Pure TypeScript working on Uint8Array in and Uint8Array out — zero node:* imports on the conversion path. The same code runs unchanged in the browser, Node.js, serverless and edge runtimes. You supply the fonts (or let it fetch open substitutes).

Word & Excel

WordprocessingML — text, styles, tables, lists, sections, headers/footers, images, tracked changes. SpreadsheetML — grids, number formats, dates, and the full print model. Plus DrawingML shapes, charts and OfficeMath.

Real typography

Type0 + CIDFontType2 embedding with subsetting, Knuth–Plass line breaking, Liang hyphenation, OpenType ligatures and kerning, BiDi (UAX #9) and Arabic cursive joining.

Compliant PDF

PDF/A-1, -2 and -3 (levels a / b / u) — all formally veraPDF-validated — plus tagged PDF (logical structure, alt text) and digital signatures (PKCS#7 detached, ECDSA).

One parse, any target

Ream.parse(bytes) reads a document once into a format-neutral interlayer; convert('pdf') and convert('svg') render from it. New formats plug in as reader/writer adapters — more are on the way.