@open-secure-viewer/core
v2.7.2
Published
Framework-agnostic secure PDF viewer SDK powered by Google PDFium WASM. Drop-in replacement for Apryse/PDFTron WebViewer, zero license fees.
Maintainers
Readme
@open-secure-viewer/core
Framework-agnostic secure PDF + Office viewer SDK powered by Google PDFium WASM (BSD-3). Zero Apryse/PDFTron license fees.
Install
npm i @open-secure-viewer/coreFeatures
- PDF rendering via PDFium WASM — pixel-perfect, runs entirely in the browser
- IntersectionObserver lazy rendering — pages 1–2 appear instantly; rest render on scroll
- Streaming fetch with progress (
onProgresscallback) - Watermarks burned into canvas pixels (not a DOM overlay — cannot be removed with DevTools)
- Security controls: block print, copy, context menu, keyboard shortcuts
- Full annotation engine — 11 annotation types, XFDF import/export, burn-to-PDF
- PDF mutations — reorder/delete/rotate/duplicate pages, redaction, form filling
- Password-protected PDF support
- Full-text search with highlights
- DOCX/XLSX/Image/Text renderers (via
@open-secure-viewer/office) onDownloadAttempthook for DRM enforcement
Quick Start
import { OsvViewer } from '@open-secure-viewer/core';
const viewer = new OsvViewer(document.getElementById('viewer')!, {
security: {
disablePrint: true,
disableCopy: true,
watermark: { text: 'CONFIDENTIAL', opacity: 0.15 },
},
});
await viewer.load('https://example.com/document.pdf');Serve the WASM file
Copy node_modules/@hyzyla/pdfium/dist/pdfium.wasm to your public folder and pass the URL:
new OsvViewer(el, { wasmUrl: '/assets/pdfium.wasm' });Links
- Full documentation
- React component →
@open-secure-viewer/react - Office renderers →
@open-secure-viewer/office - IRM key exchange →
@open-secure-viewer/irm - GitHub
License
Apache-2.0
