6.2.0
AIPentest/CyberStrikeAI6.2.0Sep 26, 2026by hand-dot
Upgrading?
AI Summary
This release introduces significant enhancements including vector-based barcodes, image object-fit controls, and SVG rotation capabilities, alongside a comprehensive suite of bug fixes for rendering, Designer, and TypeScript support.
Key Highlights
- Barcodes and QR codes are now rendered as vector SVGs for sharpness at any zoom level
- Images support object-fit and object-position controls similar to CSS
- SVG schemas can now be rotated in the Designer and generated PDFs
- CMYK color support is now available for SVG and barcodes
- Turkish language support has been added to the UI
Breaking Changes
- Barcodes are now vectors instead of PNG images
- All same-name schemas on a page are now rendered (previously only one)
- Line breaks in generated PDFs may move due to updated line-wrapping rules
- Images with EXIF orientation are now rotated automatically
New Features
- Image fit and alignment controls
- SVG rotation
- CMYK output for SVG and barcodes
- Designer `updateTemplate` target page support
- 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
ollama/ollama★ 184,212
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,052
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,612
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,198
The world’s fastest framework for building websites.
junegunn/fzf★ 83,716
:cherry_blossom: A command-line fuzzy finder