NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4964 most downloaded on npm
Create PDF files on the browser and server
Last release 1 months ago
27 Aug 2026
Release timing varies
gaps range from 1 weeks to 7 months
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
170 releases · first in 2018
Produces PDF/A-1/2/3 (b-level) output with XMP conformance metadata and an sRGB OutputIntent. pdfVersion defaults to what the chosen level requires. F
#3529 10d8365e2eb8fc3987cf94d4d61a7559f4ba1dfb Thanks @diegomura! - feat: add conformance Document prop for PDF/A output
Produces PDF/A-1/2/3 (b-level) output with XMP conformance metadata and an sRGB OutputIntent. pdfVersion defaults to what the chosen level requires. Fonts must be registered (not the built-in standard 14) to fully validate.
b768f01e862cd56987f046c117919191ef810646, 10d8365e2eb8fc3987cf94d4d61a7559f4ba1dfb]:
One column per quarter.
Updated dependencies [ 6dc0901c26354dc5a38ed302ef76d371d74d8d61 ]:
6dc0901c26354dc5a38ed302ef76d371d74d8d61]:
Nothing published for this version
Updated dependencies [ 10d8365e2eb8fc3987cf94d4d61a7559f4ba1dfb ]:
b768f01e862cd56987f046c117919191ef810646 Thanks @diegomura! - Reintroduce @react-pdf/svgkit: a pdfkit-shaped drawing context that renders documents to SVG strings. @react-pdf/render gains an optional ctx.glyphs capability seam so non-PDF backends receive raw glyphs; pdf output is unchanged.10d8365e2eb8fc3987cf94d4d61a7559f4ba1dfb]:
Updated dependencies [`71fc26e8f18a8f3d3edd64b0a1b38c138deb593c`, `dee75f98e51198766a37addc9d0bdaa4dd5dbb3b`, `ded9cdcf0d120911c0339c91519b41204acbd7d
71fc26e8f18a8f3d3edd64b0a1b38c138deb593c, dee75f98e51198766a37addc9d0bdaa4dd5dbb3b, ded9cdcf0d120911c0339c91519b41204acbd7d3, 105bdd20e8865bf92e0275e66001a1dbd06d5bf6, 1da12f2b2fc018ce6af5c5f6e04fda3016a8d39e, 563d74e0364c80d8e6094777aa66879803786e44]:
#3481 563d74e0364c80d8e6094777aa66879803786e44 Thanks @diegomura! - Sync pdfkit acroform mixin with upstream. Form field dictionaries no longer leak internal options like fontSize into the PDF.
Updated dependencies [6f94a82ea4306b0fd9c7c161f9c44609be7f6f39]:
Updated dependencies [`62c97745`, `78ca6aa8`, `6098e648`, `627acbe0`, `db681b16`, `59aa9aea`, `4c4e7a1a`, `d41a8207`, `2dcdb262`, `87911560`, `b2acd72
Updated dependencies \[`f30cf001`, `7fa9c06e`, `7b37bc8c`, `b28b61cf`]:
Nothing published for this version
Updated dependencies \[`e585e352`]:
#3351 e585e352 Thanks @diegomura! - fix(render): border rendering + tests
Updated dependencies [e585e352]:
#3152 beaffd3d Thanks @Namchee! - chore: replace emoji-regex with emoji-regex-xs
#3190 a99d10fb Thanks @carlobeltrame! - Fix yoga error Invalid array length at Array.push(<anonymous>)
Fix infinite loop while wrapping pages
#3203 ec063bec Thanks @100Gyeon! - fix: prevent unhandled promise rejections when loading emoji images
Updated dependencies []:
#2605 f7505ed Thanks @wojtekmaj! - fix: fix CJS compatibility
Updated dependencies [f7505ed]:
Updated dependencies \[`f89f75c1`]:
f89f75c1 Thanks @diegomura! - feat: add xLinkHref, gradientTransform and gradientUnits supportf89f75c1]:
8350154 Thanks @diegomura! - feat: bidi support8350154]:
Updated dependencies \[`c40bfdec`, `5b6a6a4a`, `143317f2`, `01e1fbbe`, `e27cdb48`, `39886cd7`, `7d05a6d9`]:
#3329 143317f2 Thanks @diegomura! - fix(render): text decoration color opacity
#3324 01e1fbbe Thanks @diegomura! - feat: rotate explicit origin support
Updated dependencies [16cf5bd7, c40bfdec, 5b6a6a4a, 2ca8ae83]:
Updated dependencies \[`f034491b`, `2eba70bd`, `fafbcb12`, `cc1aff24`]:
f034491b]:
Updated dependencies \[`beaffd3d`, `a99d10fb`, `5cbe2fb0`, `ec063bec`]:
e257f7ee Thanks @diegomura! - fix: font store types
Updated dependencies []:
`01b4ff5c` Thanks @diegomura! - fix: debug prop
f89f75c1 Thanks @diegomura! - feat: add xLinkHref, gradientTransform and gradientUnits support01b4ff5c Thanks @diegomura! - fix: debug prop
Updated dependencies [01b4ff5c, f89f75c1, 106699e8]:
#3100 a9ef6416 Thanks @diegomura! - feat: support percentage gap
#3102 24690f52 Thanks @diegomura! - feat: handle standard fonts in fonts package
#3092 481b536f Thanks @diegomura! - refactor: convert layout package to TS
#3103 b06d3a0f Thanks @diegomura! - refactor: unify font substitution engines
#3104 ddfa3675 Thanks @diegomura! - feat(textkit): expect font array
#3098 bfb51ec0 Thanks @diegomura! - refactor: convert render package to TS
#3101 fce45ea5 Thanks @diegomura! - fix: layout package types
Updated dependencies [2a4f1bfc, 7cd66e4f, ddfa3675, 3fb01a90, c7b74963, bfb51ec0, 24690f52, 481b536f, b06d3a0f]:
b6a14fd Thanks @wojtekmaj! - Add support for native ESMb6a14fd]:
Updated dependencies \[`b95a6dc4`, `e257f7ee`]:
#2605 f7505ed Thanks @wojtekmaj! - fix: fix CJS compatibility
Updated dependencies [f7505ed]:
Updated dependencies \[`a9ef6416`, `7cd66e4f`, `ddfa3675`, `bfb51ec0`, `a2de2685`, `24690f52`, `481b536f`, `b06d3a0f`, `fce45ea5`]:
#3082 24fe4bf8 Thanks @diegomura! - feat: rework and type stylesheet package
#3077 442ce355 Thanks @diegomura! - refactor: convert textkit package to TS
Updated dependencies [226467e3, 96c2464d, 24fe4bf8, 700535c5, 442ce355, 8d39fc46, 3007d34a]:
Updated dependencies \[`226467e3`, `96c2464d`, `24fe4bf8`, `700535c5`, `442ce355`, `3007d34a`]:
#3065 226467e3 Thanks @diegomura! - refactor: partially unify pdfkit
Updated dependencies [226467e3, 96c2464d, 24fe4bf8, 700535c5, 442ce355, 3007d34a]:
d36ace66]:
### Patch Changes - Updated dependencies \[]: - @react-pdf/types@2.8.2
Updated dependencies \[`7cd66e4f`, `ddfa3675`, `c7b74963`, `bfb51ec0`, `24690f52`, `481b536f`, `b06d3a0f`]:
#3098 bfb51ec0 Thanks @diegomura! - refactor: convert render package to TS
#3102 24690f52 Thanks @diegomura! - feat: handle standard fonts in fonts package
7cd71714 Thanks @diegomura! - feat: added Form Annotation support#3014 685890bd Thanks @islam-kamel! - fix: PDFDownloadLinkProps Type Error
Updated dependencies [7cd71714, fabecc56, 01944231, 6d875056, 49daae8f, 5cc47319, aa0f6725]:
18834efa Thanks @nikischin! - Changed unit behavior according to PDF spec. Please note that all unitless values are considered as user unit which is a 72dpi equality of the value. This is according to PDF spec and ensures a consistent layout independent of the dpi setting.18834efa]:
b6a14fd Thanks @wojtekmaj! - Add support for native ESM#2498 6bfe7e8 Thanks @diegomura! - fix: color parse error
Updated dependencies [b6a14fd]:
2db67a3 Thanks @KODIKAS-NL! - added base support for verticalAlign "super" and "sub"eff1ff0]:
Updated dependencies \[`18834efa`]:
18834efa]:
Updated dependencies \[`1916e840`, `165c70fb`]:
Updated dependencies \[`f6e9e113`]:
f6e9e113]:
Updated dependencies \[`00bfdc1e`]:
00bfdc1e]:
Updated dependencies \[`96c2464d`, `24fe4bf8`, `700535c5`, `442ce355`, `3007d34a`]:
#2955 425f1183 Thanks @diegomura! - feat: support rem units
#2952 2c3c887e Thanks @diegomura! - feat: support multiple line-height units
Updated dependencies [425f1183, 2c3c887e]:
### Patch Changes - #3067 `96c2464d` Thanks @diegomura! - refactor: convert primitives package to TS
96c2464d Thanks @diegomura! - refactor: convert primitives package to TSd36ace66]:
#2947 ed562b9b Thanks @diegomura! - feat: remove cross-fetch
Updated dependencies [ed562b9b, 77e480cd]:
82192b3a]:
#3527 6dc0901c26354dc5a38ed302ef76d371d74d8d61 Thanks @diegomura! - perf: drop the omit('font') preprocessing pass, skip attachment purging when no attachment is set, reduce allocations in the Knuth-Plass main loop, and cache standard font AFM glyph-name lookups
Updated dependencies []:
Caution: If you have been using a custom hyphenation callback - which hasn't been working properly since at least version 2.0.21 - then you will need
#3188 f034491b Thanks @carlobeltrame! - Fix and rework the hyphenation algorithm, and allow custom word hyphenation algorithms to specify whether a hyphen should be inserted in case the word is wrapped.
Caution: If you have been using a custom hyphenation callback - which hasn't been working properly since at least version 2.0.21 - then you will need to change your implementation to leave a soft hyphen character ('\u00AD') at the end of syllables where you want react-pdf to insert a hyphen when wrapping lines. Syllables without a final soft hyphen character will still be able to break, but will not produce a hyphen character at the end of the line.
This allows you to break correctly on normal hyphens or other special characters in your text. For example, to use the default english-language syllable breaking built into react-pdf, but also break after hyphens naturally occurring in your text (such as is often present in hyperlinks), you could use the following hyphenation callback:
import { Font } from "@react-pdf/renderer";
Font.registerHyphenationCallback((word, originalHyphenationCallback) => {
return originalHyphenationCallback(word).flatMap((w) => w.split(/(?<=-)/));
});
(flatMap requires at least ES2019)
7cd71714 Thanks @diegomura! - feat: added Form Annotation support#3062 5cc47319 Thanks @diegomura! - refactor: unify pdfkit image mixin
Updated dependencies [7cd71714, 01944231]:
52b2f253 Thanks @diegomura! - feat: add React 19 support52b2f253]:
Updated dependencies \[`f89f75c1`, `106699e8`]:
226467e3 Thanks @diegomura! - refactor: partially unify pdfkit00bfdc1e]:
#2936 7add014c Thanks @diegomura! - feat: pre-bundle + bump react-reconciler
Updated dependencies [b242e59a, 7add014c]:
`e257f7ee` Thanks @diegomura! - fix: font store types
e257f7ee Thanks @diegomura! - fix: font store types
Updated dependencies []:
#3061 6d875056 Thanks @diegomura! - feat: pdfkit upstream changes
#3060 49daae8f Thanks @diegomura! - feat: enable pdfkit markings mixin
#3062 5cc47319 Thanks @diegomura! - refactor: unify pdfkit image mixin
#3059 aa0f6725 Thanks @diegomura! - feat: add pdfkit subsets mixin
#2948 03322a75 Thanks @diegomura! - fix: stroke dash array computation
#2945 b5c0fe64 Thanks @diegomura! - fix: skew transformation
58f9a047]:
58f9a047 Thanks @jmezzacappa! - Prevent Yoga init from running more than onceUpdated dependencies \[`7cd66e4f`]:
24690f52 Thanks @diegomura! - feat: handle standard fonts in fonts package#3087 7cd66e4f Thanks @diegomura! - fix: font exported types
#3093 a2de2685 Thanks @diegomura! - refactor: font strict type checking
#3092 481b536f Thanks @diegomura! - refactor: convert layout package to TS
Updated dependencies [7cd66e4f]:
70f29a04 Thanks @diegomura! - feat!: drop cjs supportafe4bcfe Thanks @diegomura! - feat: add gap percentage support70f29a04 Thanks @diegomura! - feat!: drop cjs support#2877 fdcef566 Thanks @Friendseeker! - chore: bump jay-peg
Updated dependencies [70f29a04]:
#2711 42570321 Thanks @wojtekmaj! - Update Yoga to 3.0
#2871 70f29a04 Thanks @diegomura! - feat!: drop cjs support
#2876 afe4bcfe Thanks @diegomura! - feat: add gap percentage support
#2875 46c3047d Thanks @diegomura! - feat: add position: static support
#2874 55973278 Thanks @diegomura! - feat: add align-content: space-evenly support
Updated dependencies \[`e425ca4`, `e42a79a`, `5af35ec`, `53bf803`, `8e6a832`, `4bafab8`]:
Updated dependencies \[`22a34a9`]:
22a34a9]:
Updated dependencies \[`67c265a`, `713690c`]:
#2605 f7505ed Thanks @wojtekmaj! - fix: fix CJS compatibility
Updated dependencies [f7505ed]:
Updated dependencies \[`e2d21a4`]:
e2d21a4]:
Updated dependencies \[`68bfc57`]:
68bfc57]:
b5380a1 Thanks @satelllte! - fix: creationDate and modificationDate typesUpdated dependencies \[`da10a9b`, `087ee22`]:
fab09cc Thanks @SethThoburn! - Pass _INTERNAL__LAYOUT__DATA_ to onRenderCallback in toBufferfb5273d Thanks @diegomura! - feat: add creation and modification dates#2538 cfd050c Thanks @wojtekmaj! - Fix strokeDasharray crash
Updated dependencies [fb5273d]:
Updated dependencies \[`dc54c13`]:
dc54c13]:
Updated dependencies \[`f7505ed`]:
#2605 f7505ed Thanks @wojtekmaj! - fix: fix CJS compatibility
Updated dependencies [f7505ed]:
Updated dependencies \[`9af07fe`, `8350154`]:
Updated dependencies \[`0590324`]:
0590324]:
Updated dependencies \[`44bd45b`]:
44bd45b]:
Updated dependencies \[`b5380a1`]:
#2544 b5380a1 Thanks @satelllte! - fix: creationDate and modificationDate types
Updated dependencies [b5380a1]:
Updated dependencies \[`fb5273d`, `cfd050c`]:
Updated dependencies \[`36c6ba3`, `a35b1ba`]:
#2529 a35b1ba Thanks @diegomura! - fix: jpeg exif orientation rendering
Updated dependencies [36c6ba3, a35b1ba]:
42bbbda]:
Updated dependencies \[`9e5842b`, `0f5c43f`]:
0f5c43f Thanks @diegomura! - feat: wasm yoga#2515 64f7bba Thanks @wojtekmaj! - Allow <G style={…} /> in TypeScript
#2522 e817223 Thanks @wojtekmaj! - Make options in usePDF optional in TypeScript
#2519 cf73180 Thanks @wojtekmaj! - Fix props unnecessarily required in LinearGradient and RadialGradient in TypeScript
#2516 66a40b2 Thanks @wojtekmaj! - Allow <Link href={…} /> in TypeScript
Updated dependencies [9e5842b, 0f5c43f]:
b6a14fd Thanks @wojtekmaj! - Add support for native ESM#2498 6bfe7e8 Thanks @diegomura! - fix: color parse error
Updated dependencies [b6a14fd]:
Updated dependencies \[`42bbbda`]:
42bbbda]:
### Minor Changes - #2771 `8e6a832` Thanks @nikischin! - fix: fix dpi
8e6a832 Thanks @nikischin! - fix: fix dpiUpdated dependencies \[`0538bd9`]:
0538bd9]:
Updated dependencies \[`b227e0e`, `e5c8fde`, `45b2bd3`, `8654d00`, `b457a0c`, `1f987cc`, `4c40b14`]:
Updated dependencies \[`4cfb84d`]:
4cfb84d]:
Updated dependencies \[`4a55c1b`]:
4a55c1b]:
### Patch Changes - #2406 `3b5e1c7` Thanks @JoachimKoenigslieb! - Added an optional callback to the updateContainer method. This allows the user of th
3b5e1c7 Thanks @JoachimKoenigslieb! - Added an optional callback to the updateContainer method. This allows the user of the pdf instance to know when the update operation is finished in React. As this is an optional argument, no user code should be changed.update function takes the new document and renders it:
Updated dependencies \[`5385a43`, `1e1fbdc`, `8636812`]:
### Patch Changes - #2721 `713690c` Thanks @cfhull! - fix: support values of 0 in stroke-dasharray
#2309 113de53 Thanks @wojtekmaj! - Make x and y optional in Rect
#2314 d6018d5 Thanks @wojtekmaj! - Make cx and cy optional in Circle and Ellipse
Updated dependencies [a25dbcb, 2e724df, d6018d5]:
### Patch Changes - #2689 `e2d21a4` Thanks @joelybahh! - fix: jpeg precision metadata
e2d21a4 Thanks @joelybahh! - fix: jpeg precision metadata### Patch Changes - #2687 `68bfc57` Thanks @diegomura! - chore: bump jay-peg
68bfc57 Thanks @diegomura! - chore: bump jay-peg### Patch Changes - #2635 `da10a9b` Thanks @wojtekmaj! - fix: bump jay-peg dependency to fix CJS module resolution error
da10a9b Thanks @wojtekmaj! - fix: bump jay-peg dependency to fix CJS module resolution error### Patch Changes - #2610 `dc54c13` Thanks @wojtekmaj! - fix: fix CJS compatibility
dc54c13 Thanks @wojtekmaj! - fix: fix CJS compatibilityUpdated dependencies \[`f7505ed`]:
f7505ed]:
### Patch Changes - #2600 `8350154` Thanks @diegomura! - feat: bidi support
8350154 Thanks @diegomura! - feat: bidi supportYour coding agent can read these notes before it upgrades. Set up the MCP server →