@trupdf/core
The viewer engine. Hosts that don't need the SDK abstraction import directly from this package.
Exports
Viewer
DocViewer— React component, top-level entry.ViewerEngine— central state machine (see method groups below).PageRenderer— DPR-aware page render via the TruPDF render engine, with cancellation + per-page LRU.DocumentLoader— URL / ArrayBuffer / password / range load with injectable password callback.SearchManager— search runs in a background Web Worker.
UI
Toolbar,SearchBar,ThumbnailPanel,CommentsPanel,ComparePanel,CompareWorkspace,SideBySideCompare,OverlayCompare,FormLayer,PasswordModal,VirtualizedPageList,PageView,TabbedPanel,StylePanel,BookmarksPanel,OutlinePanel,AttachmentsPanel,UICustomizationPanel.- UI presets:
buildUIPresetConfig,isBuiltInUIPreset,BUILT_IN_UI_PRESETS('default-ui' | 'alternate-ui' | 'vertical-headers' | 'no-ribbons' | 'ribbons-with-icons').
Touch + a11y
bindTouchGestures— pinch-zoom, swipe, rotate, long-press.useKeyboardShortcuts— keyboard shortcut wiring (see Customization → Keyboard).
ViewerEngine
Grab the instance via the engineRef prop on DocViewer.
| Group | Methods |
|---|---|
| Document | loadDocument(source, opts) (incl. preserveAnnotations?), getState(), destroy() |
| Navigation | goToPage(n), goToNext(), goToPrev() |
| View | setScale(s), zoomIn(), zoomOut(), fitWidth(), fitPage(), fitAuto(), rotate(deltaDeg) |
| Modes | setSecureMode(on), setReviewMode(on) |
| Managers | getPageRenderer(), getSearchManager(), getAnnotationManager(), getFormManager(), getFormScriptEngine(), getToolController(), getSelectionModel(), getAnnotationClipboard(), getPresetStore(), getAuditLogger(), getContentEditStore(), getContentEditEngine(), getLicenseManager(), getSelectionStyle(), getSaveDecorator() / setSaveDecorator() |
| Identity | getCurrentUser(), setCurrentUser(user), isEnforcingAuthorEdit(), setEnforceAuthorEdit(on) |
| UX requests | openProperties(id), requestReply(id), focusComment(id), openCalibration(), openRichText(id) |
| Layers (OCG) | getLayerGroups(), getLayerOrder(), setLayerVisibility(id, on), applyOCGState(), getOptionalContentConfig(), requestRerender() |
| Redaction | applyRedactions({ actor?, reload? }), getPendingRedactionCount() |
| Content edit | applyContentEdits({ reload?, signal? }), getPendingContentEditCount() |
| PDF/A | getPdfAClaim(), validatePdfA(options), getTaggedPdfInfo(), getStructureTree(page) |
Engine events
| Event | Payload |
|---|---|
state.changed | full state snapshot |
document.loaded | the loaded document |
document.error | Error |
document.destroyed | void |
page.changed | page number |
scale.changed | scale |
rotation.changed | degrees |
secureMode.changed | bool |
loading.progress | { loaded, total, progress } |
redaction.applied / redaction.failed | burn result / error |
content-edits.changed / applied / failed | pending count / result / error |
properties.requested / reply.requested | annotation id |
comment.focusRequested | annotation id |
calibration.requested / richtext.requested | request context |
layers.visibilityChanged | layer state |
render.refreshRequested | void |
Operations
SaveEngine
save / saveAll / saveRasterized / download / downloadAll.
interface SaveOptions {
originalBytes?: Uint8Array;
signal?: AbortSignal;
attachmentName?: string; // default TRUPDF_XFDF_ATTACHMENT_NAME ('trupdf-annotations.xfdf')
skipXfdfAttachment?: boolean;
skipAnnotations?: boolean;
watermark?: WatermarkOptions;
}ExportEngine
exportImage({ page, scale? = 2, mime?, quality? = 0.92, rect? })— PNG/JPEG/WebP/BMP.exportText({ pages?, pageSeparator? }).exportHtml(options).exportFlattenedPdf(scale = 2).
PrintEngine
print({ pages?, title?, withAnnotations? = true, renderScale? = 1.5, onProgress?, onBeforePrint?, signal? }).
AttachmentEngine
list() / extract(name) / remove(name) / removeAndReload(name) —
embedded-file attachments.
Page operations (pure functions)
insertBlankPages, deletePages, rotatePages, reorderPages,
extractPages, replacePages, mergePdfs, splitPdf, cropPage,
cropPages, plus the PAGE_SIZES constant. imageToPdf(bytes, mime)
wraps an image into a single-page PDF.
Document generation
renderTemplate + generateSimplePdf — Mustache-subset templating
written directly into a fresh PDF.