在水印修改器中添加层位置选项( 在内容后/ 以上)
- 水印修改器获得一个“ layer” 字段 : “ 后面” 上方( 默认为“ 后面” ) - 修饰器Layer 现在取出一个"通过"道具("下"-"上") : - 通行证下方:制作页码、标签和有层='后面'的水印 - 上行:只制作有"上"层的水印 - PdfCanvas 制作两张修改器Layer的通行证——一张在外地...
添加水印修改器到签名工具箱
- 水印修正器类型:标志Type(完整/简单)、startPage、endPage、旋转(-180-180)、大小(10-90%的页面宽度)、不透明(2-60%)、固态相色相色相色相相相相色相相相相相相色相相相色相相相相色相相相相色相相相相相相相相色相相相相相相相相色相相相相相相色相相相相相相相相相相相相相相相相相相相...
用 LM/RM 旋转将标签修改器扩展至完整的 8 位置网格
- LabelModifier.position 现在使用ModifierPosition8(与Page Numbers相同的8个位置网格) - LM (中左):每行作为垂直药丸提供,并有写法: 垂直-rl + 旋转(180deg) ——文本读作 CCW (从下到上;行堆左到右行行行行行行行行行行行行行行行行行行行行行...
添加工具/ 修改选项卡到带有活画布覆盖的签名工具箱
- 将工具箱左侧栏分割为工具和修改器标签 - 修改器标签:拆分列表+设置面板(备选B) - 页码修改:起/出页,8-位置网格(TL/TM/TR/LM/RM/BL/BM/BR),格式预设+自定义 ({n}/{total}符号) - 标签修改器:开始/结束页,4个角网格,最多3个堆叠文本行 - 支持各种类型的多个实例 - ...
正确的旋转缩略图定位并恢复旋转变换
缩略图中的两个错误 : 1. 已替换为 " 高度: {${出处-}* 100{} (abs-的高度百分比) 定位元素——当含有块高时不可靠 padding-top)带有 “ spectRatio: String( baseAspect) ” , 因此浏览器会获取 高度从明确设置的宽度。 宽度现在为"BaseAspec...
Fix floating zoom control visibility and polish thumbnail placeholders
- Move floating zoom controls outside the scroll container and use position:absolute so they remain visible at all times regardless of scroll position; offs...
Page selection with animated glow border synced between canvas and thumbnail sidebar
- DesignTab holds selectedPageIndex as the single source of truth - Clicking any page in the main canvas selects it (onPageSelect) - Clicking a thumbnail select...
Move scroll ownership from PdfCanvas to canvasContainerRef
PdfCanvas root Box previously had overflow-auto + h-full, making it its own scroll container. This meant: - scrollbarGutter: stable on canvasContainerRef had no...
Fit to Width calculates actual container width instead of resetting to zoom 1
Reads **************** (which accounts for the stable scrollbar gutter) and the page's natural width via **************** then computes fitZoom = (availableWidt...
Replace all hardcoded purple with var(--color-primary) on Settings & Signers page
Signers icon, icon background, count badge, Add Signer buttons, Add First Signer button, empty-state illustration tint, add-another hover, and the ALL_OF_TYPE s...
Auto-select first signer, fix zoom control scrollbar gap, animate properties panel
- Toolbox auto-selects the first signer's UID when signers go from 0→1 - Canvas container uses scrollbar-gutter: stable so the sticky zoom/undo control mainta...
Reorder tabs, gate field tools by signer, redesign Settings & Signers tab
- Design is now the first tab; Settings & Signers is second - Toolbox shows "Add Signer" CTA (navigates to Settings) when no signers exist - Signature Tools, Id...
Render field controls as actual-looking form elements with signer color tinting
Each field type now renders a visual representation of the real control (text input, checkbox, toggle, dropdown, radio group, date picker, etc.) tinted with the...
Remove fixed height and scroll bars from field properties panel
The panel had two vertical scrollbars: 1. DesignTab wrapper had height: 200 + overflowY: auto 2. FieldPropertiesPanel root had height: 200 + overflow: hidden, ...
拖放设置 TotalPages 直至PDF dim 循环后防止 PDF.js 工人饱和
在一个50页的 PDF 上, 在 GetPage () 尺寸回路挂载前调用 setTotalPages 所有50个缩略图 Canvas组件 立即。 每个都回到PDF.js(服务器) 缩略图不是为模板生成的, 排出共享的50个并行任务 PDF.js 网络工人 — 压倒它并导致阴暗循环的GetPage()呼叫 无限期地停顿...
Expand component scan and add full datasource/JPA/Redis/MinIO config
ConversionServiceApplication was only scanning com.kamo.ConversionService, missing all shared library beans (ImageService, MinIOStorageService, MemberRepository...
Add kamo-shared-library build stage to resolve missing dependency
The Dockerfile was trying to fetch kamo-shared-library from Maven Central, which doesn't exist there. Mirror the SecurityService pattern: clone the shared libra...
从安全服务到转换服务/DocsService的所有成像API线路
上传路线现在通过 Conversion Service URL 直接调用转换服务: - POST/api/成像/上载 →/api/转换/成像/上载 - POST/API/成像/平板/上载 ...
删除 Imaging 控制器和豆子/ maging —— 移至 Conversion Service 和 DocsService
上传端点现在位于转换服务站/api/转换/成像/*。 所有管理和下载端点现在都以DocsService at /api/docs/image/*为单位.
Add imaging management endpoints — move all non-upload imaging from SecurityService
- Add 17 imaging DTOs to beans/imaging/ (folders, documents, templates, updates) - Add ImagingController at /api/docs/imaging with all management + download end...
Add imaging upload endpoints — move all upload logic from SecurityService
- Add JPA, Redis, NATS, kamo-shared-library, JJWT, commons-io, jackson-hibernate6 to pom.xml - Add datasource, Redis master/replica, NATS, MinIO config to appli...
升级到 Next.js 16.2.3, TypeScript 6.0.2, 节点 24, React 19 类型
- 16.2.3旁边的平和相接相匹配的 Eslint-config-next - 将打字符升级到精确的 6. 0.2, @ types/node 到 ^ 24 - 以 ^12 (移动/反应导入) 取代帧- 移动 - 将.nvmrc加到节点24.14.1 - tsconfig:目标ES2022,jsx反应-jsx,可擦除...
Delegate thumbnail generation to ConversionService, remove PDFBox dependency
ThumbnailGenerationJob now POSTs the converted PDF to ConversionService **************** unzips the response, and stores each thumb_p{n}.png in MinIO. PDFBox re...
将缩略图生成到转换服务, 删除 PDFBox 依赖性
生成AndStoreThumbnails 现在 POST 将 PDF 转换为转换服务 **************** 解开响应, 每个存储 MinIO中的缩略语 p{n}.png,并发布每页WS进度. PDF 框已删除 .
Add ThumbnailService and POST **************** endpoint
Accepts a PDF file, renders each page at 150 DPI via PDFBox, packs per-page PNGs into a ZIP (thumb_p0.png, thumb_p1.png, …) and returns it. Centralises all thum...
Add Thumbnails step to upload progress indicator, track generating_thumbnails WS stage
在模板上传时同步每页缩略图生成, 并有颗粒式 WS 进度
- 在 pom.xml 中添加 PDFBox 依赖性 - 在存储已转换的PDF后,通过PDFRender来渲染所有页面,并将每个页面上传为{id} thumb p{n}.png - 发布生成 thumbnails WS 进度事件,每页(72-95%范围),标签为"Generated jumbnail N of M" ...
Prevent page stacking, fix thumbnail slivers, add server-side thumbnails with PDF.js fallback
- Add flexShrink: 0 to page divs in PdfCanvas so pages don't compress in flex column - Add flexShrink: 0 to thumbnail items in PageThumbnailSidebar for same rea...
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
Eager PDF 渲染、 自然尺度正常化、 无水平滚动
- PdfCanvas:用急切的全页渲染器替换截面观察员。 在开始设计标签时,基于观察员的方法是不可靠的 显示 : 无 —— 浏览器无法可靠地重燃交叉事件 当祖先从显示:无向可见过渡时。 - PdfCanvas: 添加自然尺度正常化(TARGET PAGE WIDTH PQQ-612) 转换服务公司的一些PDF使用非标...
升级到 Next.js 16.2.3, TypeScript 6.0.2, 节点 24, React 19 类型
- Next.js 16.2.3 以涡轮包作为默认 Dev 服务器 - TypeScript 6.0.2 有可删除的语法 - @ types/ react * * 19和 @ types/ react-dom * * 19 (React 19 类型) - @ types/ node@^24 用于节点 24 兼容性 - ...
Eliminate removeChild DOM conflict in PDF thumbnail rendering
Replace container.innerHTML + appendChild pattern in ThumbnailCanvas with a React-managed <canvas> ref. The old approach cleared React-owned DOM nodes directly,...
将可应用的 PlanId 和可应用的 BillingCycles 作为字符串数组处理
这些字段被打成字符串 [] 但有. split ("") 调用它们, 导致 TypeScript 构建失败 .
为模板输入端点添加 CockroachDB 交易重试
CockroachDB 可序列隔离可触发 RETRY SERIALIZIBAL 在 中读取的文本模式。 重复最多3次 在例外链中检测“ retrich txn” 时带有后退.
Revert proxy routes to OTK auth, remove unused esigProxy helper
OTK is the correct auth mechanism — the prior session-header approach bypassed the established security pattern. All esig proxy routes now use generateOTK from ...
正确 OTK 语言 重写密钥格式并添加成像模板列表终点
OTK 密钥使用 OTK<id> 和 QQid > (无冒号) 匹配 Next.js 代理 。 通过共享查询成像模板时添加 POST /api/esig/templates/ list 库 ImgRepository,从安全服务中移动此能力.
对 EsigService 代理路由使用直接会话头而不是OTK
从 Redis 在 Next.js 读取 *** 会话,并通过 orgId/ memberId 作为信任 通过内部K8s DNS向ESigService发送信头. 删除 OTK 依赖 .
Replace OTK auth with trusted session headers for internal K8s calls
EsigService是内部的 — Next.js 后端从 Redis 读取会话 和通过 OrgId/memberId/userId作为 X-Org-Id, X-member-Id, X-User-Id 标题. 服务间通信不需要OTK往返.
在编辑器加载时使用内端点查找或创建模板
创建页面通过 imgId 在 URL 中 。 编辑页面现在称为 输入查找或创建 EsignTemplate 的终点,然后使用 返回UUID用于设计操作和版本历史.
Add template init endpoint to find-or-create templates by imgId
The create page uploads to the imaging system and redirects with imgId. The edit page now calls POST /api/esig/templates/init with the imgId to find an existing...
Scan all shared library repository packages to resolve bean dependencies
ComponentScan picks up shared library services which depend on repos in donotmodify.dao.repos and commerce packages — must scan those too.
Remove .mvn/ copy from Dockerfile — directory does not exist in this project
添加带有设计画布、签名和版本的电子签名模板编辑器
完全重写/doc/ sign/edit 页面,并带有标签界面(Settings & Signers, 设计), PDF.js 有可拖放字段覆盖的画布,注释工具, 签名器 管理、 页面缩略图侧边栏、 版本历史和撤销/重写 。 包括 Zustand商店,API代理线路通向ESigService,以及13个新组件.
