Skip to content
Apertura
Documentation

Introduction

Apertura is a set of TypeScript packages that parse Office file formats and render them in the browser. There is no server component, and there is no runtime dependency.

The shape of it

Every format is split in two: a parser that turns bytes into a model mirroring the file format, and a renderer that turns that model into DOM. The parser knows nothing about CSS or the DOM, which is why the same call runs unchanged in Node for text extraction, search and conversion.

Above them sits @apertura/viewer, a facade that detects the format from the bytes and picks the right pair. The React, Vue and Angular packages are thin adapters over that one class, so their behaviour is identical by construction rather than by convention.

Choosing a package

If you want toInstall
Show a document in a React app@apertura/react
Show a document in Vue or Angular@apertura/vue, @apertura/angular
Show a document without a framework@apertura/viewer
Keep unused parsers out of the bundle@apertura/core plus the format packages you need
Read a file in Node without rendering it@apertura/docx, @apertura/xlsx, @apertura/pptx

What to expect

This is a viewer, not a converter and not an editor. It aims to show a document so a person can read it, search it, select from it and trust what they see. It does not aim to reproduce Word to the pixel, and it never will — the browser lays out text, and its line breaking is not Word's.

What is achievable, and what is measured on every change, is that the content is all there, in the right order, correctly styled, with nothing missing, overlapping or garbled. The fidelity page describes how that is measured and publishes what is known to be wrong.

Requirements
A browser with ResizeObserver and Range.getClientRects() — every current version qualifies. Node 20.11+ for the parsers on the server. No polyfills, no WebAssembly, no workers required.

Next

Installation and first render takes about two minutes and ends with a document on screen.