Tech
[分享创造] Vibe Coding 实践:如何打造纯浏览器 DOCX 渲染组件
背景
我在做文档翻译网站 O.Translator (国外版) 和 商译 AI (国内版) 的时候,需要在浏览器支持 DOCX 、PDF 、PPTX 等不同文件的渲染预览。
项目初期,大部分文件类型预览都是使用开源库,对于 DOCX 文档,我选择了 VolodymyrBaydalka/docxjs 。
这个库做基本展示没问题,但大文件渲染( 20M 以上),会卡,有时候甚至让浏览器崩溃。初期,我只能在外层加门禁限制,比如 XML 超出 500 个或者文件超过 20M ,就不在网页渲染预览,让用户下载。
性能是最大的问题,直接导致很多 DOCX 文档没法在翻译完第一时间展示给用户,这个体验让我不太满意。其次,对于 XML 对象解析和 Style 族渲染支持度不够。
所以,早在一年前,我就有重写 DOCX 渲染库的想法,大体思路,整个架构基于 Worker-first 解耦,将耗时操作放到 Web Worker 中,比如解析、布局计算等,主线程只负责消费计算结果。
这样做,除了优化性能,还有一个考虑,引擎端输出结构化的布局语义,渲染端可以用 DOM ,可以用 ...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX