Changelog
All notable changes to Free PDF SDK are documented here. The format follows Keep a Changelog, and the project uses Semantic Versioning: the JavaScript API and the postMessage protocol are the public surface.
Unreleased
Version 0.2.0 (not released yet).
Added
- No
ocrfeature: the browser build has no OCR models, so text recognition is not offered and the viewer's OCR tools are hidden. - The sample document's floor plan has four layers (Structure, Furniture, Electrical, Dimensions) for the Layers panel.
- Configuration model. Eight modes (
view,review,annotate,fill,sign,organize,edit,full), each a preset of 31 features, plus per-feature overrides (features) and interface options (ui: Tools panel, tools rail, quick toolbar, right rail, zoom and page navigation, menu, search box, individual panels, layout lock, planned tools, external links). A feature that is off is hidden from every menu, submenu, context menu, toolbar, panel, dialog and keyboard shortcut, and its actions are refused if reached (pdfcraft fork: every command, tool group, document edit and annotation kind belongs to one feature). - API:
setFeatures,setUi,getConfig;setModeaccepts every mode. Unknown feature, option and panel names are rejected withBAD_REQUEST. - Framework integrations:
free-pdf-sdk/react(component and ref handle),free-pdf-sdk/vue(component),free-pdf-sdk/svelte(action) andfree-pdf-sdk/element(<free-pdf-viewer>Web Component, for Angular and any other framework), all built on a shared controller that turns option changes into API calls. - npm package with the viewer files and a CLI:
npx free-pdf-sdk copy-viewer <folder>(scripts/build.ps1stages it indist/npm). - The landing site (
site/, Firebase Hosting): home page, live demo running the real SDK, and documentation for people and for AI agents (/llms.txt,/llms-full.txt, Markdown pages, a JSON Schema of the options). Tables come fromdocs/reference/config.json, which a test keeps in step with the code. - Brand: the Free PDF SDK logo (vector, traced from the artwork) and brand colours in the viewer.
- A synthetic demo document (cover with a floor plan, an approval form, a dimensioned
specification) in
tests/fixtures/demo.pdf.
Changed
importXfdfanddeleteAllAnnotationsreject withREAD_ONLYwhenever the configuration has no annotation feature (not only inviewmode).- Any configuration without a document-changing feature is read-only (the viewer stays in Read mode), whatever its mode.
Added (earlier in 0.2.0)
- Annotate mode: a closed Tools drawer (or one Read mode hides) leaves a slim rail on its side, the left by default, to pull it back out: the chevron reopens it as it was, and each tool group's coloured icon opens that group (pdfcraft fork patch).
Fixed
- Annotate mode: the Tools drawer lists all four tool groups (Fill & Sign, Add comments, Add a stamp, Measure objects). Measure objects was hidden behind "View more" (pdfcraft fork patch). The drawer now opens on that list instead of inside Add comments.
0.1.0 - 2026-10-20
Added
FreePdf.init(element, options): an iframe-isolated viewer on the host's origin, withbaseUrl,document(urlordata),mode(view|annotate),author,theme,password,disabledElements,locale,timeoutMsand earlylisteners.- Methods:
load,unlock,getPermissions,importXfdf,exportXfdf,getAnnotations,deleteAllAnnotations,setAuthor,setTheme,setMode,setDisabledElements,setLocale,getPageCount,goToPage,setZoom,isDirty,save,version,destroy,on/off. - Events:
ready,documentLoaded,documentError,annotationsChanged,dirtyChanged,error,saveRequested. - postMessage RPC protocol version 1: request ids, typed
{ code, message }errors, channel ids, origin and source checks on both sides, validated inputs. - Standard XFDF import and export (author in
title), exact comment counts, replies. - Owner-password-protected AES-256 PDFs: permissions reported,
unlock(ownerPassword). - Locked view mode and comments-only annotate mode (pdfcraft UI profile patch).
- White-label branding from
brand/(pdfcraft Brand patch); no ArtCraft or PdfCraft marks. - Build (
scripts/build.ps1), upstream update (scripts/update-upstream.ps1) and release (scripts/release.ps1) scripts; CI; Playwright e2e tests; docs.
Based on
- pdfcraft upstream
6fb6b7cf6fd8dc105fdd56a764d207cff6140694(0.10.0) with thefree-pdf-sdk/patchescommits (exact commit inversion.json).