6.2.0
getmaxun/maxun6.2.0Sep 26, 2026by hand-dot
Upgrading?
AI Summary
Adds image layout controls, SVG rotation, CMYK output, Turkish support, and resolves numerous rendering and Designer bugs.
Key Highlights
- Image fit and alignment controls (objectFit, objectPosition)
- SVG rotation support in Designer and PDFs
- CMYK color support for SVG and barcodes
- Barcodes converted to SVG vectors for sharp rendering
Breaking Changes
- Barcodes are now vectors (visual change, no longer PNG images)
- All same-name schemas on a page are now rendered
- Line breaks may move due to updated wrapping rules
- Images with EXIF orientation are rotated correctly
New Features
- Image fit and alignment controls
- SVG rotation
- CMYK color support
- Vector barcodes
- Turkish UI support
Full Release Notes
This release adds image fit and alignment controls, SVG rotation, CMYK output for SVG and barcodes, and Turkish UI support. It also fixes a large batch of long-standing rendering, Designer, and TypeScript issues.
## New
- **Image fit and alignment:** Image schemas support `objectFit` (`contain` / `cover`) and `objectPosition` (a 9-position grid, like CSS). Existing templates without these fields keep rendering as `contain` + `center center`. (#1630, closes #696)
- **SVG rotation:** SVG schemas can now be rotated in the Designer and in generated PDFs. (#1629)
- **CMYK for SVG and barcodes:** When `colorType: 'cmyk'` is set, SVG fills, strokes, and text, and barcode colors are written as CMYK. `PDFPage.drawSvg` accepts an optional color mapper. (#1627, #1628)
- **Barcodes as vectors:** Barcodes and QR codes are drawn into PDFs as SVG vectors instead of embedded PNG images, so they stay sharp at any zoom. UI previews are unchanged. (#1628, closes #460)
- **Designer `updateTemplate` target page:** `designer.updateTemplate(template, { page })` sets the active page after a programmatic update. Without the option, the current page is now preserved instead of jumping back to page 1. (#1625, closes #1235)
- **Turkish:** Add Turkish (`lang: 'tr'`) to the UI and playground. (#1609)
## Fixes
- **Page order in generated PDFs:** Each page's schemas are rendered in array order, and schemas that share a name on the same page are all rendered. (#1626)
- **Line breaks:** The Viewer and generated PDFs use the same line-wrapping rules (UAX #14), so text breaks at the same places on screen and in the PDF, including around quotes and colons. (#1615, closes #1115)
- **Thai and Lao:** Tone marks such as ไม้เอก (U+0E48) now render when a string starts with Latin or CJK characters. (#1614, closes #1347)
- **Image orientation:** JPEG/PNG EXIF orientation is applied before embedding, so photos are no longer upside down or sideways in PDFs. (#1617, closes #1183)
- **SVG text fonts:** Configured fonts are passed to SVG rendering, fixing WinAnsi encoding errors for non-Latin SVG text. (#1624, closes #1433)
- **Rotated rectangles:** Thick borders on rotated rectangles are placed the same in the PDF as in the UI, and no longer disappear at 90°. (#1622, closes #382)
- **Barcodes in Web Workers:** QR and barcode generation works in browser module Workers. (#1613, closes #702)
- **Read-only multi-variable text:** Renders the substituted text instead of the variable names. (#1611, closes #1345)
- **Read-only tables:** Use `input[schema.name]` when provided instead of always rendering the Designer sample data. (#1612, closes #1299)
- **Static schema:** Multi-variable text in `basePdf.staticSchema` no longer throws `Text block not found`, and static schema ids stay stable during a Designer session. (#1610, closes #1296)
- **Designer size:** Designer, Form, and Viewer no longer render at 0×0 when the container is off-screen or only partly visible. (#1607, closes #1606)
- **Zoom scrolling:** At high zoom, the viewer waits until the current page is mostly scrolled away before switching pages. (#1608, closes #1240)
- **Undo/redo on non-US keyboards:** Keep `hotkeys-js` at 4.0.4 or later so undo/redo is not swapped on layouts such as German QWERTZ. (#1621, closes #1465)
- **TypeScript ≤ 5.6:** Published typings use a named `PdfBytes` type, so `Template` inference no longer collapses to `unknown`. (#1623, closes #1021)
- **Options:** UI options are shallow-copied on construct and `updateOptions`, so later changes to the caller's object do not leak into the UI.
- **Website:** Landing page cards wrap correctly on narrow screens. (#1620, closes #929)
## Dependencies and tooling
- Update `@testing-library/jest-dom` to 7.0.1 and `brace-expansion` to 5.0.12.
## Upgrade notes
This release keeps the public API backward compatible, but some generated PDFs may look different:
- **Barcodes are vectors now.** The visual result is sharper, but the PDF no longer contains a PNG image for each barcode. If you post-process PDFs and look for barcode images, update that step. (#1628)
- **All same-name schemas on a page are rendered.** Previously only one of them was drawn. Rendering order now follows each page's `schemas` array. (#1626)
- **Line breaks may move.** Text in generated PDFs now wraps with the same rules as the Viewer, which can change where lines break and the height of dynamic content. (#1615)
- **Images with EXIF orientation are rotated correctly.** If you rotated such images manually to work around the old behavior, remove that workaround. (#1617)
- **Read-only tables and multi-variable text use input values** when they are provided, instead of the Designer sample content. (#1611, #1612)
**Full changelog:** https://github.com/pdfme/pdfme/compare/6.1.13...6.2.0
Related Repositories
openclaw/openclaw★ 392,698
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,069
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 357,794
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,683
The open source coding agent.
n8n-io/n8n★ 208,253
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.