logo NodeSeekbeta

【开源自荐】iwork-viewer:浏览器离线预览 Pages、Numbers、Keynote

最近终于把 File Viewer 里的 iWork 解析能力拆成了独立包:iwork-viewer。

起因挺普通。客户发来 .pages,Windows 同事只能请他再导一份 PDF。我不想再把内部文件交给在线转换站,就顺着格式一路拆了下去。

现在它可以在浏览器里直接解析 .pages/.numbers/.key,不依赖服务端转码或运行时 CDN。旧版 iWork '09 走 XML/APXL,2013 年后的文件走 Snappy/IWA。

pnpm add [email protected]
import { renderIworkDocument } from 'iwork-viewer'

const viewer = await renderIworkDocument(file, target, 'pages')
viewer.fit('width')

Pages 浏览器预览

目前是静态预览。Numbers 显示文件保存时的公式结果,不重算;Keynote 的动画、转场和视频不会播放;加密 iwpv2 只识别,不解密。我宁愿先把这些限制说清楚,免得“支持”两个字越传越离谱。

真实 fixture 覆盖 iWork '09、2015 年前后的 IWA 和 Apple 15.3.1 当前文件。视觉回归阈值是 Pages/Keynote 3%、Numbers 5%。

Numbers 浏览器预览

仓库和安装说明:https://github.com/flyfish-dev/iwork-viewer

它比较适合接进 OA、知识库、网盘、客服附件和内网系统。我没打算把它包装成“万能转换站”。手里有不涉密的真实 iWork 文件,欢迎直接提兼容问题,样本永远比一张支持列表有用。

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72267位seeker

🎉欢迎新用户🎉