V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
chaxus
V2EX  ›  分享创造

WASM 打包的 Office 方案,解决 Web 端需求新思路

  •  
  •   chaxus ·
    chaxus · 8 天前 · 2150 次点击

    2021 年工作时,参与过一个在线教育项目(教学资源平台),需要实现 Office 文档的 Web 预览和编辑。

    当时调研了文件格式解析、微软/谷歌的预览链接、LibreOffice 、kkFileView 等转换等方案,发现这一块还是挺麻烦的。

    不过好在后面因为众所周知的政策原因,部门没了,所以就算啦。

    但后来发现这类需求其实很常见,Office 三件套是办公刚需。不过优先级往往不高:“能在线看最好,不能就下载呗,又不是不能用”。

    后面还见过有大佬手动实现 PPTX JS 解析的。

    最近发现新思路:有人将 OnlyOffice 构建成 WASM ,直接打包到 Web 端运行。

    尝试了一下效果还可以,只不过 WASM 有点大,Web 上加载需要点时间。不过省掉了服务器资源,在降本增效的大环境下友好。

    https://github.com/ranuts/document

    如果有遇到类似的业务场景,可以考虑考虑 WASM 这种方向。

    13 条回复    2025-07-02 12:28:18 +08:00
    sujin190
        1
    sujin190  
       8 天前
    这效果,非常可以了
    putaozhenhaochi
        2
    putaozhenhaochi  
       8 天前
    50 多 M 😂
    chaxus
        3
    chaxus  
    OP
       8 天前
    @putaozhenhaochi 毕竟打包了 onlyoffice 😂
    chaxus
        4
    chaxus  
    OP
       8 天前
    @sujin190 是哇,纯 Web 能做到这种程度还是挺神奇的。于是来给 v 友分享分享。
    netnr
        5
    netnr  
       8 天前
    没有算字体,字体现在依赖的是 360 的域名,常用字体包近 200M ,支持的越多越大
    netnr
        6
    netnr  
       8 天前
    另外提个建议,wasm 能拆包?小于 25M 最好,Cloudflaer Pages 就限制单文件不能超过 25M
    Kokomashiro
        7
    Kokomashiro  
       8 天前 via Android
    厉害厉害,前段时间刚好也因为业务在研究这个,后来算是卡住了就先搁置了。
    murmur
        8
    murmur  
       8 天前
    WASM 是最简单的问题,目前能用在大型企业的 web 版,不要 office ,就只能选 wps 文档中台,libreoffice 用过,还是 exe 版的,被财务那堆报表和图表教育的爹妈不认
    MEIerer
        9
    MEIerer  
       8 天前
    牛哇
    BrandonXu
        10
    BrandonXu  
       6 天前
    @chaxus 哥们儿?你这个开源库,用于商业项目,且闭源,可以用吗?
    chaxus
        11
    chaxus  
    OP
       6 天前
    @BrandonXu 有点困难,毕竟 onlyoffice 官方的 [sdkjs]( https://github.com/ONLYOFFICE/sdkjs) 和 [web-apps]( https://github.com/ONLYOFFICE/web-apps) 是 AGPL-3.0 license 协议
    1. 如果只是内部使用,允许闭源。
    2. 如果提供 SaaS 服务或者进行销售,那就得开源。
    AGPL 不禁止商业盈利,但要求共享改进成果。
    chaxus
        12
    chaxus  
    OP
       6 天前
    @netnr 好的,我对 wasm 进行 br 了一下,现在只有 8.9 M 了。处理了一下 br 文件的加载。现在加载速度变快了很多。
    ajan
        13
    ajan  
       5 天前
    太牛了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:48 · PVG 10:48 · LAX 19:48 · JFK 22:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.