Skip to content

Convert DOCX, XLSX, PPTX & PDF in the browser

MIT TypeScript Browser · Node · Edge

Read any office document.
Convert it to anything.

Ream parses Word, Excel, PowerPoint and PDF — including the legacy .doc / .xls / .ppt — and writes PDF, SVG, HTML, DOCX or XLSX. In the browser, straight from the ECMA-376 and ISO 32000 specifications. No LibreOffice, no headless Office, no commercial SDK.

Reads · seven formats in
.docx .xlsx .pptx .pdf .doc .xls .ppt
Ream.parse() → FlowDoc
Writes · five formats out
.pdf .svg .html .docx .xlsx

Built from the spec, in the browser

One parse, any target — the architecture in six pieces.

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.

Browser-first

Pure TypeScript on Uint8Array in and Uint8Array out — zero node:* imports on the conversion path. The same code runs in the browser, Node, serverless and edge.

Seven formats in

The OOXML trio plus .pdf and the legacy binary .doc / .xls / .ppt (97–2003). DrawingML shapes, charts and OfficeMath throughout.

Real typography

Type0 + CIDFontType2 embedding with subsetting, Knuth–Plass line breaking, Liang hyphenation, OpenType ligatures and kerning, BiDi and Arabic joining.

Compliant PDF

PDF/A-1/2/3 (a/b/u) and PDF/UA-1 — all veraPDF-validated — plus tagged PDF, digital signatures and AES-256 encryption.

One parse, any target

Ream.parse(bytes) reads once into a format-neutral interlayer; convert renders PDF, SVG, HTML, DOCX or XLSX from it. Formats plug in as adapters.

Questions, bug reports or collaboration — [email protected] Docs for AI: llms.txt Built from ECMA-376 & ISO 32000