Skip to content

v0.5.0

Latest

Choose a tag to compare

@donglua donglua released this 16 Oct 05:16
· 16 commits to main since this release

主要变化

格式解析与排版

  • 暴露 parse_path_to_json 原生接口,由 Rust 核心直接完成路径解析与序列化,去除 Android JNI 与鸿蒙 NAPI 中重复的中间层胶水代码。
  • 过滤 DOCX 中的 vanish 和 webHidden 隐藏文本,忽略 rt/rp ruby 注音标记,并设置单文档 8 MiB 文本上限保护。
  • XLSX 支持分号 ; 切分多段格式(正数/负数/零/文本),支持 [$-409] 等区域代码与颜色标签解析,支持负数括号表示与 1900 虚拟日期。
  • 超长单元格截断逻辑收敛至 Rust 核心统一处理;统一 PPTX 表格列宽归一化计算,以及双端字体与列表符号默认样式。

资源解压与内存管理

  • 新增线程安全的 package_cache 模块,通过 LRU 缓存与文件修改感知重载复用 ZIP 句柄与中央目录,减少并发读图时的重复 I/O。
  • ZIP 解压采用动态流式读取,避免未经校验的大内存预分配;整包累计跟踪 256 MiB 解压预算(MAX_EXPANDED),防范畸形压缩包导致的内存超限。
  • 规范原生句柄、Bitmap 与 PixelMap 的生命周期与释放时机,优化图片缓存(ImageStore / OfficeCache / OfficeImages)的 LRU 淘汰机制,降低跨语言调用时的内存泄漏风险与峰值占用。

鸿蒙端渲染与交互

  • 手势缩放后支持上下滚动浏览全文,横向平移查看边缘内容。
  • XLSX 电子表格支持单元格自动换行(style.wrap)、超长截断与 UTF-16 代理对截断保护。
  • DOCX 修复首行缩进与左边距叠加计算,支持 textIndent、fontFamily、lineHeight 行距与 DocxShapeView 矢量形状绘制。
  • Canvas 文本排版复用测量结果,避免每帧重复测量。
  • HAR 打包排除 native 源码及编译中间缓存,移除 32 位架构预编译库,缩减产物体积。

完整变更见 CHANGELOG。