embedpdf/embed-pdf-viewer
 Watch   
 Star   
 Fork   
8 days ago
embed-pdf-viewer

Release v2.14.3

@embedpdf/engines@2.14.3

Patch Changes

  • #638 by @bobsingor – Fix two bugs that caused polygon (and square/circle) annotations created via the createAnnotation API with strokeStyle: PdfAnnotationBorderStyle.CLOUDY to be saved as a half-built stub missing /C, /IC, /CA, /F, /BE, /RD, and /AP:

    • Normalise PdfAnnotationBorderStyle.CLOUDY to SOLID inside setBorderStyle before calling PDFium's EPDFAnnot_SetBorderStyle. Cloudy is not a /BS/S value — it is conveyed via the separate /BE (border effect) dict, which setBorderEffect already writes. PDFium previously rejected the call and aborted the rest of addPolyContent / addShapeContent, so the cloudy effect, colors, opacity, flags, and appearance stream were never written.
    • Fix the rollback path in createPageAnnotation so failed content-add calls actually remove the partially-built annotation. The previous code called FPDFPage_RemoveAnnot(pagePtr, annotationPtr), but PDFium's C signature is FPDFPage_RemoveAnnot(FPDF_PAGE, int index) — the annotation pointer was interpreted as an out-of-range index and silently no-op'd, leaving the stub annotation in the page. It now uses removeAnnotationByName (via EPDFPage_RemoveAnnotByName) and closes the annotation handle.

    The PdfAnnotationBorderStyle.CLOUDY enum value is now treated as a deprecated alias for SOLID + cloudyBorderIntensity and is slated for removal in the next major release.

  • #641 by @bobsingor – Populate PdfPageObject.objectNumber from PDFium's EPDFDoc_GetPageObjectNumberByIndex in openDocumentBuffer and importPages, so pages now expose their PDF indirect-object number alongside their index, size, and rotation.

  • #642 by @bobsingor – Preserve custom annotation /NM values instead of rewriting them to a UUID v4.

    The engine previously overwrote any /NM (annotation name) that wasn't a UUID v4 — both when creating new annotations (rewriting the caller's annotation.id) and when reading existing ones (mutating the on-disk value as a side effect of opening a PDF). This broke any consumer using a custom identity scheme (e.g. ULIDs, firm-2024-001, etc.).

    The engine now only generates a UUID v4 when /NM is empty or missing; any non-empty value is kept as-is. PDFium's EPDFPage_GetAnnotByName lookup only needs a unique string, so no functional behaviour changes for callers that don't supply a custom id.

@embedpdf/models@2.14.3

Patch Changes

  • #641 by @bobsingor – Add objectNumber: number to PdfPageObject, populated by the engine from EPDFDoc_GetPageObjectNumberByIndex. Lets consumers correlate pages with their PDF indirect-object numbers (e.g. for linking, debugging, or round-tripping raw object references). PdfPageObject is engine-owned — only the engine constructs it — so this is additive for all practical consumers.

@embedpdf/pdfium@2.14.3

Patch Changes

  • #638 by @bobsingor – Fix callout FreeText annotations rendering with a black background when the fill color is transparent.

    In GenerateFreeTextAP's callout branch, the text-box rectangle was painted unconditionally with operator B (fill + stroke). When /C was absent, no fill colour was emitted, so B fell back to PDF's default black fill. Now the fill defaults to transparent via GetColorStringWithDefault and the paint operator is picked dynamically with GetPaintOperatorString, mirroring GenerateCircleAP / GenerateSquareAP.

  • #640 by @bobsingor – Fix page layout shifting after editing PDFs whose /Contents is a split-stream array (e.g. after redaction).

    PDF renders /Contents as one continuous program, so graphics state set in one stream carries into the next. The previous behaviour rewrote only the dirty streams while keeping the original split boundaries, which could corrupt the graphics-state handoff between streams and shift the visible layout. CPDF_PageContentGenerator::GenerateContent now collapses all active page objects into a single canonical content stream when the page has been edited, via GenerateCanonicalPageStream + CPDF_PageContentManager::ReplaceWithSingleStream. Form XObjects keep their existing single-stream behaviour.

@embedpdf/snippet@2.14.3

Patch Changes

  • #638 by @bobsingor – Re-export the annotation API surface from @embedpdf/models through the snippet bundle so consumers can use named enums and typed annotation shapes instead of hardcoding numeric subtype/border-style values.

    Newly exported from @embedpdf/snippet:

    • Enums: PdfAnnotationBorderStyle, PdfAnnotationLineEnding, PdfAnnotationFlags, PdfAnnotationName, PdfAnnotationIcon, PdfAnnotationState, PdfAnnotationStateModel, PdfAnnotationReplyType, PdfAnnotationObjectStatus, PdfBlendMode, PdfStampFit, AppearanceMode.
    • Annotation flag helpers: PdfAnnotationFlagName, flagsToNames, namesToFlags.
    • Annotation object types: PdfAnnotationObjectBase, PdfAnnotationObject, PdfSupportedAnnoObject, PdfUnsupportedAnnoObject, PdfTextAnnoObject, PdfLinkAnnoObject, PdfFreeTextAnnoObject, PdfLineAnnoObject, PdfSquareAnnoObject, PdfCircleAnnoObject, PdfPolygonAnnoObject, PdfPolylineAnnoObject, PdfHighlightAnnoObject, PdfUnderlineAnnoObject, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfCaretAnnoObject, PdfInkAnnoObject, PdfInkListObject, PdfPopupAnnoObject, PdfFileAttachmentAnnoObject, PdfWidgetAnnoObject, PdfRedactAnnoObject, PdfRectDifferences, LinePoints, LineEndings, PdfAnnotationOf.
    • Create-context types: AnnotationCreateContext, AnnotationContextMap.
    • Geometry / color: Position, Size, Rect, WebColor.

    PdfAnnotationSubtype and PdfStampAnnoObject were already exported and continue to work unchanged.

  • #638 by @bobsingor – Add Brazilian Portuguese (pt-BR) as a built-in locale of the snippet viewer.

    • New brazilianPortugueseTranslations export from @embedpdf/snippet, covering the full translation schema so users see localised strings everywhere (search panel, password prompt, document-error dialog, outline, comments, blend-mode picker, link dialog, full protect/security flows, signature flow, etc.) — no English fallback noise.
    • Registered in the default i18n.locales array alongside the existing nine locales, so the viewer's language picker now lists "Português (Brasil)" out of the box.
    • The wide-label responsive override that used to be German/Dutch-only now also applies to pt-BR, because words like "Visualizar" (10) and "Formulário" (10) are as wide as German labels and would otherwise overflow the toolbar at the md breakpoint. The override group id was renamed from germanic-languages to wide-label-languages to reflect the broader scope; behaviour for de/nl is unchanged.

@embedpdf/core@2.14.3

@embedpdf/plugin-annotation@2.14.3

@embedpdf/plugin-attachment@2.14.3

@embedpdf/plugin-bookmark@2.14.3

@embedpdf/plugin-capture@2.14.3

@embedpdf/plugin-commands@2.14.3

@embedpdf/plugin-document-manager@2.14.3

@embedpdf/plugin-export@2.14.3

@embedpdf/plugin-form@2.14.3

@embedpdf/plugin-fullscreen@2.14.3

@embedpdf/plugin-history@2.14.3

@embedpdf/plugin-i18n@2.14.3

@embedpdf/plugin-interaction-manager@2.14.3

@embedpdf/plugin-pan@2.14.3

@embedpdf/plugin-print@2.14.3

@embedpdf/plugin-redaction@2.14.3

@embedpdf/plugin-render@2.14.3

@embedpdf/plugin-rotate@2.14.3

@embedpdf/plugin-scroll@2.14.3

@embedpdf/plugin-search@2.14.3

@embedpdf/plugin-selection@2.14.3

@embedpdf/plugin-signature@2.14.3

@embedpdf/plugin-spread@2.14.3

@embedpdf/plugin-stamp@2.14.3

@embedpdf/plugin-thumbnail@2.14.3

@embedpdf/plugin-tiling@2.14.3

@embedpdf/plugin-ui@2.14.3

@embedpdf/plugin-view-manager@2.14.3

@embedpdf/plugin-viewport@2.14.3

@embedpdf/plugin-zoom@2.14.3

@embedpdf/utils@2.14.3

@embedpdf/react-pdf-viewer@2.14.3

@embedpdf/svelte-pdf-viewer@2.14.3

@embedpdf/vue-pdf-viewer@2.14.3

28 days ago
embed-pdf-viewer

Release v2.14.2

@embedpdf/snippet@2.14.2

Patch Changes

  • #607 by @bobsingor – Add fonts configuration 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. null skips the <link> (falls back to the system font stack); an object with family and/or stylesheetUrl lets you change the viewer font family independently from the stylesheet source, with omitted stylesheetUrl treated as no managed <link>.
    • fonts.signature: controls the signature "Type" tab fonts. null skips the <link> and hides the "Type" tab; an object with stylesheetUrl and/or fonts lets 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-face works 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/core@2.14.2

@embedpdf/engines@2.14.2

@embedpdf/models@2.14.2

@embedpdf/pdfium@2.14.2

@embedpdf/plugin-annotation@2.14.2

@embedpdf/plugin-attachment@2.14.2

@embedpdf/plugin-bookmark@2.14.2

@embedpdf/plugin-capture@2.14.2

@embedpdf/plugin-commands@2.14.2

@embedpdf/plugin-document-manager@2.14.2

@embedpdf/plugin-export@2.14.2

@embedpdf/plugin-form@2.14.2

@embedpdf/plugin-fullscreen@2.14.2

@embedpdf/plugin-history@2.14.2

@embedpdf/plugin-i18n@2.14.2

@embedpdf/plugin-interaction-manager@2.14.2

@embedpdf/plugin-pan@2.14.2

@embedpdf/plugin-print@2.14.2

@embedpdf/plugin-redaction@2.14.2

@embedpdf/plugin-render@2.14.2

@embedpdf/plugin-rotate@2.14.2

@embedpdf/plugin-scroll@2.14.2

@embedpdf/plugin-search@2.14.2

@embedpdf/plugin-selection@2.14.2

@embedpdf/plugin-signature@2.14.2

@embedpdf/plugin-spread@2.14.2

@embedpdf/plugin-stamp@2.14.2

@embedpdf/plugin-thumbnail@2.14.2

@embedpdf/plugin-tiling@2.14.2

@embedpdf/plugin-ui@2.14.2

@embedpdf/plugin-view-manager@2.14.2

@embedpdf/plugin-viewport@2.14.2

@embedpdf/plugin-zoom@2.14.2

@embedpdf/utils@2.14.2

@embedpdf/react-pdf-viewer@2.14.2

@embedpdf/svelte-pdf-viewer@2.14.2

@embedpdf/vue-pdf-viewer@2.14.2

2026-04-22 15:25:51
embed-pdf-viewer

Release v2.14.1

@embedpdf/models@2.14.1

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/plugin-annotation@2.14.1

Patch Changes

  • #601 by @bobsingor – Add PDF LOCKED_CONTENTS flag handling and granular lock helpers (hasNoViewFlag, hasHiddenFlag, hasReadOnlyFlag, hasLockedContentsFlag). Expose isAnnotationInteractive, isAnnotationStructurallyLocked, isAnnotationContentLocked, and isAnnotationSelectable on the plugin API. Update annotation rendering across React/Preact, Svelte, and Vue to skip noView/hidden annotations and gate interactions using the new predicates. Thread structurallyLocked and contentLocked through the selection menu context on all three stacks so custom menus can disable structural or content edits without re-reading flag arrays.

@embedpdf/snippet@2.14.1

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-export LockModeType from the snippet’s public embedpdf entry for consumers.

  • #598 by @ngivanyh – Add Traditional Chinese (zh-TW) locale strings to the snippet viewer, register them in the default translation bundle, and expose zh-TW in the CJK language group of the UI schema so users can select 繁體中文 in the viewer.

@embedpdf/core@2.14.1

@embedpdf/engines@2.14.1

@embedpdf/pdfium@2.14.1

@embedpdf/plugin-attachment@2.14.1

@embedpdf/plugin-bookmark@2.14.1

@embedpdf/plugin-capture@2.14.1

@embedpdf/plugin-commands@2.14.1

@embedpdf/plugin-document-manager@2.14.1

@embedpdf/plugin-export@2.14.1

@embedpdf/plugin-form@2.14.1

@embedpdf/plugin-fullscreen@2.14.1

@embedpdf/plugin-history@2.14.1

@embedpdf/plugin-i18n@2.14.1

@embedpdf/plugin-interaction-manager@2.14.1

@embedpdf/plugin-pan@2.14.1

@embedpdf/plugin-print@2.14.1

@embedpdf/plugin-redaction@2.14.1

@embedpdf/plugin-render@2.14.1

@embedpdf/plugin-rotate@2.14.1

@embedpdf/plugin-scroll@2.14.1

@embedpdf/plugin-search@2.14.1

@embedpdf/plugin-selection@2.14.1

@embedpdf/plugin-signature@2.14.1

@embedpdf/plugin-spread@2.14.1

@embedpdf/plugin-stamp@2.14.1

@embedpdf/plugin-thumbnail@2.14.1

@embedpdf/plugin-tiling@2.14.1

@embedpdf/plugin-ui@2.14.1

@embedpdf/plugin-view-manager@2.14.1

@embedpdf/plugin-viewport@2.14.1

@embedpdf/plugin-zoom@2.14.1

@embedpdf/utils@2.14.1

@embedpdf/react-pdf-viewer@2.14.1

@embedpdf/svelte-pdf-viewer@2.14.1

@embedpdf/vue-pdf-viewer@2.14.1

2026-04-06 03:37:45
embed-pdf-viewer

Release v2.14.0

@embedpdf/engines@2.14.0

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/models@2.14.0

Minor Changes

  • #581 by @bobsingor – Extend free text annotation typing for callouts: add PdfAnnotationColorType.TextColor and optional calloutLine, lineEnding, strokeWidth, and strokeColor on PdfFreeTextAnnoObject.

@embedpdf/pdfium@2.14.0

Minor Changes

  • #581 by @bobsingor – Expose EmbedPDF callout line helpers in the WASM bindings (EPDFAnnot_GetCalloutLineCount, EPDFAnnot_GetCalloutLine, EPDFAnnot_SetCalloutLine) and refresh bundled pdfium.js / pdfium.cjs / pdfium.wasm.

@embedpdf/plugin-annotation@2.14.0

Minor Changes

  • #581 by @bobsingor – Add callout free text (FreeTextCallout): creation handler and preview data, vertex config and patch pipeline, default freeTextCallout tool, and built-in renderers for React, Vue, and Svelte (including preview components and shared calloutVertexConfig).

@embedpdf/snippet@2.14.0

Minor Changes

  • #581 by @bobsingor – Wire callout into the snippet viewer: callout icon, annotation:add-callout command, annotation toolbar and overflow menu entries, translations, and sidebar property schema for freeTextCallout (including opaque stroke color control).

@embedpdf/core@2.14.0

@embedpdf/plugin-attachment@2.14.0

@embedpdf/plugin-bookmark@2.14.0

@embedpdf/plugin-capture@2.14.0

@embedpdf/plugin-commands@2.14.0

@embedpdf/plugin-document-manager@2.14.0

@embedpdf/plugin-export@2.14.0

@embedpdf/plugin-form@2.14.0

@embedpdf/plugin-fullscreen@2.14.0

@embedpdf/plugin-history@2.14.0

@embedpdf/plugin-i18n@2.14.0

@embedpdf/plugin-interaction-manager@2.14.0

@embedpdf/plugin-pan@2.14.0

@embedpdf/plugin-print@2.14.0

@embedpdf/plugin-redaction@2.14.0

@embedpdf/plugin-render@2.14.0

@embedpdf/plugin-rotate@2.14.0

@embedpdf/plugin-scroll@2.14.0

@embedpdf/plugin-search@2.14.0

@embedpdf/plugin-selection@2.14.0

@embedpdf/plugin-signature@2.14.0

@embedpdf/plugin-spread@2.14.0

@embedpdf/plugin-stamp@2.14.0

@embedpdf/plugin-thumbnail@2.14.0

@embedpdf/plugin-tiling@2.14.0

@embedpdf/plugin-ui@2.14.0

@embedpdf/plugin-view-manager@2.14.0

@embedpdf/plugin-viewport@2.14.0

@embedpdf/plugin-zoom@2.14.0

@embedpdf/utils@2.14.0

@embedpdf/react-pdf-viewer@2.14.0

@embedpdf/svelte-pdf-viewer@2.14.0

@embedpdf/vue-pdf-viewer@2.14.0

2026-04-04 04:33:14
embed-pdf-viewer

Release v2.13.0

@embedpdf/plugin-signature@2.13.0

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/plugin-annotation@2.13.0

Patch Changes

  • #579 by @bobsingor – Re-export patching utilities from ./patching so dependent plugins (for example signature placement) can reuse the shared patch helpers.

@embedpdf/snippet@2.13.0

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/core@2.13.0

@embedpdf/engines@2.13.0

@embedpdf/models@2.13.0

@embedpdf/pdfium@2.13.0

@embedpdf/plugin-attachment@2.13.0

@embedpdf/plugin-bookmark@2.13.0

@embedpdf/plugin-capture@2.13.0

@embedpdf/plugin-commands@2.13.0

@embedpdf/plugin-document-manager@2.13.0

@embedpdf/plugin-export@2.13.0

@embedpdf/plugin-form@2.13.0

@embedpdf/plugin-fullscreen@2.13.0

@embedpdf/plugin-history@2.13.0

@embedpdf/plugin-i18n@2.13.0

@embedpdf/plugin-interaction-manager@2.13.0

@embedpdf/plugin-pan@2.13.0

@embedpdf/plugin-print@2.13.0

@embedpdf/plugin-redaction@2.13.0

@embedpdf/plugin-render@2.13.0

@embedpdf/plugin-rotate@2.13.0

@embedpdf/plugin-scroll@2.13.0

@embedpdf/plugin-search@2.13.0

@embedpdf/plugin-selection@2.13.0

@embedpdf/plugin-spread@2.13.0

@embedpdf/plugin-stamp@2.13.0

@embedpdf/plugin-thumbnail@2.13.0

@embedpdf/plugin-tiling@2.13.0

@embedpdf/plugin-ui@2.13.0

@embedpdf/plugin-view-manager@2.13.0

@embedpdf/plugin-viewport@2.13.0

@embedpdf/plugin-zoom@2.13.0

@embedpdf/utils@2.13.0

@embedpdf/react-pdf-viewer@2.13.0

@embedpdf/svelte-pdf-viewer@2.13.0

@embedpdf/vue-pdf-viewer@2.13.0

2026-04-01 23:29:38
embed-pdf-viewer

Release v2.12.1

@embedpdf/plugin-annotation@2.12.1

Patch Changes

  • #571 by @bobsingor – Add getAnnotations(options?) method to retrieve all tracked annotations, optionally filtered by page index. Available on both AnnotationCapability and AnnotationScope.

@embedpdf/snippet@2.12.1

Patch Changes

  • #571 by @bobsingor – Export missing annotation types from the snippet package: AnnotationTransferItem, ExportAnnotationsOptions, GetAnnotationsOptions, TrackedAnnotation, AnnotationTool, PdfAnnotationSubtype, and PdfStampAnnoObject.

@embedpdf/core@2.12.1

@embedpdf/engines@2.12.1

@embedpdf/models@2.12.1

@embedpdf/pdfium@2.12.1

@embedpdf/plugin-attachment@2.12.1

@embedpdf/plugin-bookmark@2.12.1

@embedpdf/plugin-capture@2.12.1

@embedpdf/plugin-commands@2.12.1

@embedpdf/plugin-document-manager@2.12.1

@embedpdf/plugin-export@2.12.1

@embedpdf/plugin-form@2.12.1

@embedpdf/plugin-fullscreen@2.12.1

@embedpdf/plugin-history@2.12.1

@embedpdf/plugin-i18n@2.12.1

@embedpdf/plugin-interaction-manager@2.12.1

@embedpdf/plugin-pan@2.12.1

@embedpdf/plugin-print@2.12.1

@embedpdf/plugin-redaction@2.12.1

@embedpdf/plugin-render@2.12.1

@embedpdf/plugin-rotate@2.12.1

@embedpdf/plugin-scroll@2.12.1

@embedpdf/plugin-search@2.12.1

@embedpdf/plugin-selection@2.12.1

@embedpdf/plugin-spread@2.12.1

@embedpdf/plugin-stamp@2.12.1

@embedpdf/plugin-thumbnail@2.12.1

@embedpdf/plugin-tiling@2.12.1

@embedpdf/plugin-ui@2.12.1

@embedpdf/plugin-view-manager@2.12.1

@embedpdf/plugin-viewport@2.12.1

@embedpdf/plugin-zoom@2.12.1

@embedpdf/utils@2.12.1

@embedpdf/react-pdf-viewer@2.12.1

@embedpdf/svelte-pdf-viewer@2.12.1

@embedpdf/vue-pdf-viewer@2.12.1

2026-04-01 20:19:57
embed-pdf-viewer

Release v2.12.0

@embedpdf/plugin-annotation@2.12.0

Minor Changes

  • #569 by @bobsingor – Add symmetric annotation import/export API using a unified AnnotationTransferItem type. exportAnnotations() produces the same format that importAnnotations() consumes — zero remapping needed for round-tripping. Stamp appearances are automatically exported as PDF buffers in ctx.data. On import, stamps can be created from PNG, JPEG, or PDF buffers via ctx: { data: ArrayBuffer } — the engine auto-detects the format from magic bytes. Also adds deleteAllAnnotations() convenience method.

@embedpdf/core@2.12.0

@embedpdf/engines@2.12.0

@embedpdf/models@2.12.0

@embedpdf/pdfium@2.12.0

@embedpdf/plugin-attachment@2.12.0

@embedpdf/plugin-bookmark@2.12.0

@embedpdf/plugin-capture@2.12.0

@embedpdf/plugin-commands@2.12.0

@embedpdf/plugin-document-manager@2.12.0

@embedpdf/plugin-export@2.12.0

@embedpdf/plugin-form@2.12.0

@embedpdf/plugin-fullscreen@2.12.0

@embedpdf/plugin-history@2.12.0

@embedpdf/plugin-i18n@2.12.0

@embedpdf/plugin-interaction-manager@2.12.0

@embedpdf/plugin-pan@2.12.0

@embedpdf/plugin-print@2.12.0

@embedpdf/plugin-redaction@2.12.0

@embedpdf/plugin-render@2.12.0

@embedpdf/plugin-rotate@2.12.0

@embedpdf/plugin-scroll@2.12.0

@embedpdf/plugin-search@2.12.0

@embedpdf/plugin-selection@2.12.0

@embedpdf/plugin-spread@2.12.0

@embedpdf/plugin-stamp@2.12.0

@embedpdf/plugin-thumbnail@2.12.0

@embedpdf/plugin-tiling@2.12.0

@embedpdf/plugin-ui@2.12.0

@embedpdf/plugin-view-manager@2.12.0

@embedpdf/plugin-viewport@2.12.0

@embedpdf/plugin-zoom@2.12.0

@embedpdf/utils@2.12.0

@embedpdf/react-pdf-viewer@2.12.0

@embedpdf/snippet@2.12.0

@embedpdf/svelte-pdf-viewer@2.12.0

@embedpdf/vue-pdf-viewer@2.12.0

2026-03-31 22:57:52
embed-pdf-viewer

Release v2.11.1

@embedpdf/engines@2.11.1

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 imageSize so predefined image stamps render correctly while preserving the original embedded bitmap quality.

@embedpdf/models@2.11.1

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/plugin-annotation@2.11.1

Patch Changes

  • #566 by @bobsingor – Fix Vue and Svelte renderer registration typing so custom preview container styles build correctly.

@embedpdf/plugin-render@2.11.1

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/snippet@2.11.1

Patch Changes

  • #566 by @bobsingor – Disable the snippet rubber stamp insert command when the active document does not allow annotation modifications.

@embedpdf/core@2.11.1

@embedpdf/pdfium@2.11.1

@embedpdf/plugin-attachment@2.11.1

@embedpdf/plugin-bookmark@2.11.1

@embedpdf/plugin-capture@2.11.1

@embedpdf/plugin-commands@2.11.1

@embedpdf/plugin-document-manager@2.11.1

@embedpdf/plugin-export@2.11.1

@embedpdf/plugin-form@2.11.1

@embedpdf/plugin-fullscreen@2.11.1

@embedpdf/plugin-history@2.11.1

@embedpdf/plugin-i18n@2.11.1

@embedpdf/plugin-interaction-manager@2.11.1

@embedpdf/plugin-pan@2.11.1

@embedpdf/plugin-print@2.11.1

@embedpdf/plugin-redaction@2.11.1

@embedpdf/plugin-rotate@2.11.1

@embedpdf/plugin-scroll@2.11.1

@embedpdf/plugin-search@2.11.1

@embedpdf/plugin-selection@2.11.1

@embedpdf/plugin-spread@2.11.1

@embedpdf/plugin-stamp@2.11.1

@embedpdf/plugin-thumbnail@2.11.1

@embedpdf/plugin-tiling@2.11.1

@embedpdf/plugin-ui@2.11.1

@embedpdf/plugin-view-manager@2.11.1

@embedpdf/plugin-viewport@2.11.1

@embedpdf/plugin-zoom@2.11.1

@embedpdf/utils@2.11.1

@embedpdf/react-pdf-viewer@2.11.1

@embedpdf/svelte-pdf-viewer@2.11.1

@embedpdf/vue-pdf-viewer@2.11.1

2026-03-31 05:43:30
embed-pdf-viewer

Release v2.11.0

@embedpdf/engines@2.11.0

Minor Changes

  • #562 by @bobsingor – Implement new PDF manipulation and annotation appearance export methods: createDocument, importPages, deletePage, exportAnnotationAppearanceAsPdf, and exportAnnotationsAppearanceAsPdf.

@embedpdf/models@2.11.0

Minor Changes

  • #562 by @bobsingor – Add PdfAnnotationName enum (deprecating PdfAnnotationIcon). Extend PdfEngine and IPdfiumExecutor interfaces with new document manipulation capabilities (createDocument, importPages, deletePage) and annotation appearance export methods.

@embedpdf/pdfium@2.11.0

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/plugin-annotation@2.11.0

Minor Changes

  • #562 by @bobsingor – Add ToolContextMap to 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/plugin-stamp@2.11.0

Minor Changes

  • #562 by @bobsingor – Introduce @embedpdf/plugin-stamp for managing reusable rubber-stamp libraries. Includes features for loading built-in/manifest stamps, creating custom stamps from annotations, and exporting custom stamp libraries.

@embedpdf/plugin-ui@2.11.0

Minor Changes

  • #562 by @bobsingor – Enhance sidebar API by allowing custom props to be passed via setActiveSidebar and toggleSidebar, enabling dynamic state injection into sidebar components.

@embedpdf/snippet@2.11.0

Minor Changes

  • #562 by @bobsingor – Integrate @embedpdf/plugin-stamp with the default viewer. Add the Rubber Stamp sidebar, Signature sidebar, and Insert tools to the default UI schema. Include standard stamp/insert translations.

@embedpdf/core@2.11.0

@embedpdf/plugin-attachment@2.11.0

@embedpdf/plugin-bookmark@2.11.0

@embedpdf/plugin-capture@2.11.0

@embedpdf/plugin-commands@2.11.0

@embedpdf/plugin-document-manager@2.11.0

@embedpdf/plugin-export@2.11.0

@embedpdf/plugin-form@2.11.0

@embedpdf/plugin-fullscreen@2.11.0

@embedpdf/plugin-history@2.11.0

@embedpdf/plugin-i18n@2.11.0

@embedpdf/plugin-interaction-manager@2.11.0

@embedpdf/plugin-pan@2.11.0

@embedpdf/plugin-print@2.11.0

@embedpdf/plugin-redaction@2.11.0

@embedpdf/plugin-render@2.11.0

@embedpdf/plugin-rotate@2.11.0

@embedpdf/plugin-scroll@2.11.0

@embedpdf/plugin-search@2.11.0

@embedpdf/plugin-selection@2.11.0

@embedpdf/plugin-spread@2.11.0

@embedpdf/plugin-thumbnail@2.11.0

@embedpdf/plugin-tiling@2.11.0

@embedpdf/plugin-view-manager@2.11.0

@embedpdf/plugin-viewport@2.11.0

@embedpdf/plugin-zoom@2.11.0

@embedpdf/utils@2.11.0

@embedpdf/react-pdf-viewer@2.11.0

@embedpdf/svelte-pdf-viewer@2.11.0

@embedpdf/vue-pdf-viewer@2.11.0

2026-03-26 22:30:18
embed-pdf-viewer

Release v2.10.1

Automated release.