Fact sheet · @n-uf/papyrus 26.11.2

papyrus

A documents engine for HTML and PDF.

Pages you write once, as HTML or React, are sheets on screen and pages in the PDF.

Not yet stable. The API, the page contract and the sheet styling are not final, and a release can break any of them. Pin an exact version and read the CHANGELOG first.

Contents

  1. 1.What it is2
  2. 2.Two packages, one version2
  3. 3.One element, one sheet, one page2
  4. 4.The PDF check2
  5. A.Versions and licence2

This sheet is itself a papyrus document: each page is an element with the class pdf-page, and its PDF was printed by papyrus pdf after the page count was checked.

papyrus fact sheet1 / 2

papyrusn-uf.com/papyrus

1.What it is

A documents engine for documents rendered as HTML and exported as PDF. It is framework-free, so it also runs without a bundler, and it contains no brand, copy or document content of its own.

2.Two packages, one version

PackageWhat it isShips
@n-uf/papyrusThe engine: page contract, sheets, document registry and PDF exporter.Plain ESM JavaScript with type declarations
@n-uf/papyrus-reactReact components built on the engine: page and content blocks, a React-typed registry and print styles.TypeScript source

The two packages always share one version number.

3.One element, one sheet, one page

The class pdf-page marks a page: one element, one sheet on screen, one page in the PDF. sheetCss() gives it its size, A4 (210 × 297 mm) or Letter (8.5 × 11 in), and the exporter counts these elements to check the PDF.

import { SHEETS, sheetCss } from "@n-uf/papyrus";

const css = sheetCss(SHEETS.LETTER);  // US Letter sheets

4.The PDF check

Every PDF is checked before it is written: the page elements, the PDF's page count and the expected pageCount must agree, so a broken render is never saved. This sample was printed with:

papyrus pdf --config papyrus.config.json

A.Versions and licence

Calendar versions, YY.M.R: 26.11.0 is the first release of November 2026. Licence: PolyForm Perimeter 1.0.1.

papyrus fact sheet2 / 2