Releases: embedpdf/embed-pdf-viewer
Release v2.14.2
@embedpdf/[email protected]
Patch Changes
-
#607 by @bobsingor – Add
fontsconfiguration to the snippet viewer for controlling external webfont loading. Both defaults remain unchanged (Open Sans for the UI chrome, Caveat / Dancing Script / Great Vibes / Pacifico for the Create Signature "Type" tab), but integrators can now opt out cleanly for GDPR-sensitive, airgapped, or self-hosted deployments.fonts.ui: controls the snippet UI font.nullskips the<link>(falls back to the system font stack); an object withfamilyand/orstylesheetUrllets you change the viewer font family independently from the stylesheet source, with omittedstylesheetUrltreated as no managed<link>.fonts.signature: controls the signature "Type" tab fonts.nullskips the<link>and hides the "Type" tab; an object withstylesheetUrland/orfontslets you self-host the stylesheet and override the font list.
Both stylesheets are now registered at document scope with deduped
<link rel="stylesheet">elements so@font-faceworks consistently across browsers and typed signatures can render correctly to canvas. Existing matching stylesheet links are reused when possible. -
#607 by @bobsingor – Prevent the zoom percentage
%symbol in the custom zoom toolbar from wrapping to a new line when the toolbar is resized to a narrow width. The input and%are now rendered as a single non-wrapping flex group that clips overflow instead of breaking the layout.
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.14.1
@embedpdf/[email protected]
Patch Changes
- #601 by @bobsingor – Add
PdfAnnotationFlags.LOCKED_CONTENTS(1 << 9) and map it to the'lockedContents'PdfAnnotationFlagName, extending flag parsing helpers (flagsToNames,namesToFlags) accordingly.
@embedpdf/[email protected]
Patch Changes
- #601 by @bobsingor – Add PDF
LOCKED_CONTENTSflag handling and granular lock helpers (hasNoViewFlag,hasHiddenFlag,hasReadOnlyFlag,hasLockedContentsFlag). ExposeisAnnotationInteractive,isAnnotationStructurallyLocked,isAnnotationContentLocked, andisAnnotationSelectableon the plugin API. Update annotation rendering across React/Preact, Svelte, and Vue to skipnoView/hiddenannotations and gate interactions using the new predicates. ThreadstructurallyLockedandcontentLockedthrough the selection menu context on all three stacks so custom menus can disable structural or content edits without re-reading flag arrays.
@embedpdf/[email protected]
Patch Changes
-
#601 by @bobsingor – Align annotation fill-mode toolbar commands with plugin-configured default lock state via
getDefaultAnnotationLock, and swap unlock vs form-only lock behavior so defaults match the intended modes. Re-exportLockModeTypefrom the snippet’s publicembedpdfentry for consumers. -
#598 by @ngivanyh – Add Traditional Chinese (
zh-TW) locale strings to the snippet viewer, register them in the default translation bundle, and exposezh-TWin the CJK language group of the UI schema so users can select 繁體中文 in the viewer.
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.14.0
@embedpdf/[email protected]
Minor Changes
- #581 by @bobsingor – Support callout free text in the PDFium executor: read/write
/CL,/LE,/IT, stroke width and colors,/TextColor, and remap rectangle differences (/RD) between native PDFium order and the model shape.
@embedpdf/[email protected]
Minor Changes
- #581 by @bobsingor – Extend free text annotation typing for callouts: add
PdfAnnotationColorType.TextColorand optionalcalloutLine,lineEnding,strokeWidth, andstrokeColoronPdfFreeTextAnnoObject.
@embedpdf/[email protected]
Minor Changes
- #581 by @bobsingor – Expose EmbedPDF callout line helpers in the WASM bindings (
EPDFAnnot_GetCalloutLineCount,EPDFAnnot_GetCalloutLine,EPDFAnnot_SetCalloutLine) and refresh bundledpdfium.js/pdfium.cjs/pdfium.wasm.
@embedpdf/[email protected]
Minor Changes
- #581 by @bobsingor – Add callout free text (
FreeTextCallout): creation handler and preview data, vertex config and patch pipeline, defaultfreeTextCallouttool, and built-in renderers for React, Vue, and Svelte (including preview components and sharedcalloutVertexConfig).
@embedpdf/[email protected]
Minor Changes
- #581 by @bobsingor – Wire callout into the snippet viewer: callout icon,
annotation:add-calloutcommand, annotation toolbar and overflow menu entries, translations, and sidebar property schema forfreeTextCallout(including opaque stroke color control).
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.13.0
@embedpdf/[email protected]
Minor Changes
- #579 by @bobsingor – Add the Signature plugin: reusable signature and initials entries, draw/type/upload pads, placement as ink or stamp annotations, and framework bindings for React, Vue, Preact, and Svelte.
@embedpdf/[email protected]
Patch Changes
- #579 by @bobsingor – Re-export patching utilities from
./patchingso dependent plugins (for example signature placement) can reuse the shared patch helpers.
@embedpdf/[email protected]
Patch Changes
- #579 by @bobsingor – Register the Signature plugin in the snippet viewer, add a create-signature modal and wire the signature sidebar to real entries, placement, and translations.
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.12.1
@embedpdf/[email protected]
Patch Changes
- #571 by @bobsingor – Add
getAnnotations(options?)method to retrieve all tracked annotations, optionally filtered by page index. Available on bothAnnotationCapabilityandAnnotationScope.
@embedpdf/[email protected]
Patch Changes
- #571 by @bobsingor – Export missing annotation types from the snippet package:
AnnotationTransferItem,ExportAnnotationsOptions,GetAnnotationsOptions,TrackedAnnotation,AnnotationTool,PdfAnnotationSubtype, andPdfStampAnnoObject.
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.12.0
@embedpdf/[email protected]
Minor Changes
- #569 by @bobsingor – Add symmetric annotation import/export API using a unified
AnnotationTransferItemtype.exportAnnotations()produces the same format thatimportAnnotations()consumes — zero remapping needed for round-tripping. Stamp appearances are automatically exported as PDF buffers inctx.data. On import, stamps can be created from PNG, JPEG, or PDF buffers viactx: { data: ArrayBuffer }— the engine auto-detects the format from magic bytes. Also addsdeleteAllAnnotations()convenience method.
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.11.1
@embedpdf/[email protected]
Patch Changes
-
#557 by @jonashaag – Add BMP encoding support as an optional image format
BMP encoding bypasses canvas.toBlob() entirely by prepending a 66-byte header to the raw RGBA pixel data. This eliminates the dominant rendering bottleneck — in benchmarks, encoding dropped from ~76ms average (PNG via canvas.toBlob) to <1ms, reducing total tile render time by ~60%.
The BMP uses BI_BITFIELDS with channel masks matching PDFium's RGBA output byte order, so no per-pixel conversion is needed. Top-down row order avoids row flipping. The result is a valid BMP that all modern browsers decode natively in
<img>elements.Users who want to opt into the faster BMP path can set
defaultImageType: 'image/bmp'in the render plugin config, while PNG remains the default output format. -
#566 by @bobsingor – Fix custom stamp annotations with
imageSizeso predefined image stamps render correctly while preserving the original embedded bitmap quality.
@embedpdf/[email protected]
Patch Changes
-
#557 by @jonashaag – Add BMP encoding support as an optional image format
BMP encoding bypasses canvas.toBlob() entirely by prepending a 66-byte header to the raw RGBA pixel data. This eliminates the dominant rendering bottleneck — in benchmarks, encoding dropped from ~76ms average (PNG via canvas.toBlob) to <1ms, reducing total tile render time by ~60%.
The BMP uses BI_BITFIELDS with channel masks matching PDFium's RGBA output byte order, so no per-pixel conversion is needed. Top-down row order avoids row flipping. The result is a valid BMP that all modern browsers decode natively in
<img>elements.Users who want to opt into the faster BMP path can set
defaultImageType: 'image/bmp'in the render plugin config, while PNG remains the default output format.
@embedpdf/[email protected]
Patch Changes
- #566 by @bobsingor – Fix Vue and Svelte renderer registration typing so custom preview container styles build correctly.
@embedpdf/[email protected]
Patch Changes
-
#557 by @jonashaag – Add BMP encoding support as an optional image format
BMP encoding bypasses canvas.toBlob() entirely by prepending a 66-byte header to the raw RGBA pixel data. This eliminates the dominant rendering bottleneck — in benchmarks, encoding dropped from ~76ms average (PNG via canvas.toBlob) to <1ms, reducing total tile render time by ~60%.
The BMP uses BI_BITFIELDS with channel masks matching PDFium's RGBA output byte order, so no per-pixel conversion is needed. Top-down row order avoids row flipping. The result is a valid BMP that all modern browsers decode natively in
<img>elements.Users who want to opt into the faster BMP path can set
defaultImageType: 'image/bmp'in the render plugin config, while PNG remains the default output format.
@embedpdf/[email protected]
Patch Changes
- #566 by @bobsingor – Disable the snippet rubber stamp insert command when the active document does not allow annotation modifications.
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.11.0
@embedpdf/[email protected]
Minor Changes
- #562 by @bobsingor – Implement new PDF manipulation and annotation appearance export methods:
createDocument,importPages,deletePage,exportAnnotationAppearanceAsPdf, andexportAnnotationsAppearanceAsPdf.
@embedpdf/[email protected]
Minor Changes
- #562 by @bobsingor – Add
PdfAnnotationNameenum (deprecatingPdfAnnotationIcon). ExtendPdfEngineandIPdfiumExecutorinterfaces with new document manipulation capabilities (createDocument,importPages,deletePage) and annotation appearance export methods.
@embedpdf/[email protected]
Minor Changes
- #562 by @bobsingor – Expose new PDFium functions for annotation appearance generation and export (
EPDFAnnot_ExportAppearanceAsDocument,EPDFAnnot_ExportMultipleAppearancesAsDocument,EPDFAnnot_SetAppearanceFromPage,EPDFAnnot_GetName,EPDFAnnot_SetName).
@embedpdf/[email protected]
Minor Changes
- #562 by @bobsingor – Add
ToolContextMapto support typed context injection for active tools. Introduce preview renderers and bounding-box components for annotations (CirclePreview,SquarePreview,InkPreview, etc.) to support drag-to-create or stamp hover previews.
@embedpdf/[email protected]
Minor Changes
- #562 by @bobsingor – Introduce
@embedpdf/plugin-stampfor managing reusable rubber-stamp libraries. Includes features for loading built-in/manifest stamps, creating custom stamps from annotations, and exporting custom stamp libraries.
@embedpdf/[email protected]
Minor Changes
- #562 by @bobsingor – Enhance sidebar API by allowing custom
propsto be passed viasetActiveSidebarandtoggleSidebar, enabling dynamic state injection into sidebar components.
@embedpdf/[email protected]
Minor Changes
- #562 by @bobsingor – Integrate
@embedpdf/plugin-stampwith the default viewer. Add the Rubber Stamp sidebar, Signature sidebar, and Insert tools to the default UI schema. Include standard stamp/insert translations.
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
@embedpdf/[email protected]
Release v2.10.1
Automated release.
Release v2.10.0
@embedpdf/[email protected]
Minor Changes
- #537 by @bobsingor –
- Add engine APIs for reading page widgets and form/document JavaScript actions, setting full widget state, renaming and sharing widget fields, and regenerating widget appearances.
- Route the new widget and form operations through the PDFium and web worker layers to support form authoring and fill-mode workflows.
@embedpdf/[email protected]
Minor Changes
- #537 by @bobsingor –
- Expand form and widget models with typed field unions, widget appearance/style metadata, export values, and JavaScript action types.
- Add helper utilities and engine interface updates for widget discovery, field state updates, shared fields, and appearance regeneration.
@embedpdf/[email protected]
Minor Changes
- #537 by @bobsingor –
- Add PDFium bindings and wasm exports for creating and editing form widgets, reading widget metadata and JavaScript actions, sharing fields, and regenerating widget appearance streams.
- Improve form handle lifecycle management so widget reads, writes, and appearance generation work more reliably across repeated operations.
@embedpdf/[email protected]
Minor Changes
- #537 by @bobsingor –
- Add annotation lock modes, scoped navigation/state events, richer tool metadata, and locked-mode renderer support so annotations can switch cleanly between authoring and fill interactions.
- Add link previews and locked link navigation support plus shared React, Svelte, and Vue updates for the new renderer and interaction APIs.
@embedpdf/[email protected]
Minor Changes
- #537 by @bobsingor –
- Add a new cross-framework form plugin with widget authoring tools, renderer registration, fill-mode components, state hooks, and widget appearance rendering.
- Support text fields, checkboxes, radio buttons, combo boxes, and list boxes across React, Svelte, Vue, and Preact, including programmatic updates and shared field operations.
@embedpdf/[email protected]
Minor Changes
- #537 by @bobsingor –
- Add full form authoring and fill-mode support to the snippet viewer, including new commands, toolbar items, translations, icons, and widget editing controls.
- Wire form mode into the viewer schema and sidebars so widgets can be created, configured, filled, and previewed in the example app.
@embedpdf/[email protected]
Patch Changes
- #537 by @bobsingor –
- Allow
TabandShift+Tabkeyboard handling to continue working inside form inputs so field navigation is not blocked. - Normalize spacebar shortcut parsing so commands can consistently match the
spacekey.
- Allow
@embedpdf/[email protected]
Patch Changes
- #537 by @bobsingor –
- Update redaction tool integration to work with typed annotation tool definitions and the newer annotation capability access patterns.
- Guard annotation capability usage during redaction flows and resolve defaults from the active tool configuration for more consistent behavior.