Nutrient Web SDK
JavaScript/TypeScript SDK for rendering and interacting with PDFs in the browser. Also referred to in nutrient.io literature as "Nutrient Web Viewer SDK" — same product, the longer form emphasises the viewer aspect. Ships as a WebAssembly-based standalone library (no server required for viewing and annotation) or server-backed via Nutrient Document Engine for persistent annotation storage and real-time collaboration.
Documentation
Two complementary sources — reach for whichever fits the question:
The installed package types.
@nutrient-sdk/viewerships full.d.tstypings. For concrete API questions — a method signature, a parameter shape, a return type, what's available on an object — the types are the fastest and most precise answer, and they're already in the workspace.The
llms.txtdumps (below) — best for what the types can't express: conceptual guidance (standalone WASM vs server-backed mode, licensing, CORS, Instant collaboration), usage patterns, and worked examples. Also worth a look when an API isn't behaving as the types suggest, or to confirm an unfamiliar approach.- API reference: https://www.nutrient.io/api/web/llms.txt
- Guides: https://www.nutrient.io/guides/web/llms.txt
- Cross-product index (other Nutrient SDKs): https://www.nutrient.io/llms.txt
A reasonable default: resolve "what's the signature" from the types, consult the guides for "how should I approach this" — but use your judgement.
Example Repositories
- React integration: https://github.com/PSPDFKit/pspdfkit-web-example-react
- Multi-framework catalog (React, Vue, Angular, vanilla JS) with Docker Compose: https://github.com/PSPDFKit/pspdfkit-web-examples-catalog
Key Concepts
- Package:
npm install @nutrient-sdk/viewer. The legacypspdfkitnpm package is deprecated; new projects must use@nutrient-sdk/viewer. - Load API:
NutrientViewer.load({ container, document: '/path/to/file.pdf' }). The legacyPSPDFKit.load(...)symbol is out of date; current docs and examples useNutrientViewer.load(...). - Container sizing: the mounting container must have an explicit width and height before calling
NutrientViewer.load()or initialisation fails.