vue 预览 word 文档有什么好方案? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
watanuki
V2EX    Vue.js

vue 预览 word 文档有什么好方案?

  •  
  •   watanuki 2020-07-28 00:43:45 +08:00 11359 次点击
    这是一个创建于 1909 天前的题,其中的信息可能已经有所发展或是发生改变。
    网上给的方案都是利用微软的在线预览功能: http://view.officeapps.live.com/op/view.aspx?src=<文档位置>

    但是这要求文件必须有公网链接,若文件在局域网,且不能上传到公网时,又该怎么解决 word 文档预览的问题?
    22 条回复    2020-07-28 11:22:18 +08:00
    npe
        1
    npe  
       2020-07-28 00:53:08 +08:00 via iPhone
    word 源代码其实还是 html 吧,试着读 raw 试试? 或者看看开源解决方案?
    ETiV
        2
    ETiV  
       2020-07-28 01:05:20 +08:00 via iPhone
    src=data uri ?支持吗?
    buliugu
        3
    buliugu  
       2020-07-28 01:27:27 +08:00
    私有化部署的话,可以看看 onlyoffice 或者基于 onlyoffice 的开源项目
    hutng
        4
    hutng  
       2020-07-28 01:29:52 +08:00
    跑题答一下,先转 PDF,再预览
    geelaw
        5
    geelaw  
       2020-07-28 01:41:30 +08:00
    @npe #1 新版的 Word 格式是压缩过的 XML,不是 HTML 。

    @ETiV #2 即使这样可以,也相当于把数据传入公网了,此外通常服务器处理 URL 有最大长度限制(比较自然的想法是 32768 个 Unicode 字符这种级别),任何非平凡 Word 文档用 data URI 编码都会超过该长度。

    一个简单的方案是(在内网)部署 Office Online Server,见 https://docs.microsoft.com/en-us/officeonlineserver/deploy-office-online-server

    另外这个问题和 Vue 不 Vue 关系不大。
    312ybj
        6
    312ybj  
       2020-07-28 08:00:42 +08:00 via Android   11
    vue 只是前段,word 文档预览跟 vue 没有太大关系。我正好做过这个。下面是我调研的结果。
    1. 后台将 word 转换成 pdf,前台预览 pdf
    优点:前台只要预览 pdf
    缺点:后台转换需要时间,且会有格式丢失
    2. 微软在线预览借口
    优点:调用别人的 api 就行
    缺点:需要将文件放到公网,以便 url 能访问
    3. office web app 服务
    目前我是用这个,我们的还是内网环境
    优点:无损预览,ppt 都能播放
    缺点:部署麻烦,需要两台 windows 服务器,一台域控,一台负责转换
    4. wps 服务
    这个是最近推出来的
    优点:我用过官方 demo,感觉还不错
    缺点:付费,量计费:2 元 /个,包月最低 2k 起
    renmu123
        7
    renmu123  
       2020-07-28 08:01:21 +08:00 via Android
    可以找找有没有 wps 版的,算曲线救国,word 的配置和格式实在太多了,很难有工具可以完整预览
    crclz
        8
    crclz  
       2020-07-28 08:19:37 +08:00
    转 PDF 。PDF 这种宇宙广泛支持的格式多好啊
    BarZu
        9
    BarZu  
       2020-07-28 08:41:01 +08:00
    把需求砍了,跟老板说你做不到,只能下载,我是这么干的,老板拿我没办法
    killmojo
        10
    killmojo  
       2020-07-28 08:47:21 +08:00
    不需要前端修改的话服务端转 PDF 就行。
    用 VSTO 或者 GCWord 都行。
    还需要局域网前端编辑预览,貌似只能花重金私有化部署了
    kkeybbs
        11
    kkeybbs  
       2020-07-28 08:47:45 +08:00 via iPhone   1
    纯 vue 估计挺难,不限定可以参考
    https://github.com/kekingcn/kkFileView
    搭建专门预览服务
    dk7952638
        12
    dk7952638  
       2020-07-28 08:52:30 +08:00
    linbingcheng
        13
    linbingcheng  
       2020-07-28 09:08:29 +08:00
    OWA 只能预览 Office 文件
    商用看下永中 、WPS 吧,还有楼上开源的 KKFileView
    jydeng
        14
    jydeng  
       2020-07-28 09:24:12 +08:00
    实现过类似的文档分享平台,方案是后端转 PDF,前端 pdf.js 。
    ryanlid
        15
    ryanlid  
       2020-07-28 09:26:10 +08:00
    百度和 wps 有付费服务
    ctrlands
        16
    ctrlands  
       2020-07-28 09:29:08 +08:00
    我们以前用的是后端转 pdf,前端 pdf 预览
    lbw
        17
    lbw  
       2020-07-28 09:55:34 +08:00
    mammoth.js
    supuwoerc
        18
    supuwoerc  
       2020-07-28 10:03:23 +08:00
    那就在局域网自己建一个 office web365 去年干了几个项目都是这样做的
    fyutou
        19
    fyutou  
       2020-07-28 10:10:03 +08:00
    pageoffice....
    LokiSharp
        20
    LokiSharp  
       2020-07-28 11:00:10 +08:00
    你要的可能是这个? https://ej2.syncfusion.com/vue/demos/#/material/document-editor/default.html
    这个 Syncfusion 对 100 万美元以下的公司免费
    lijsh
        21
    lijsh  
       2020-07-28 11:04:21 +08:00
    https://mp.weixin.qq.com/s/p7TKapQP4cv_IbFWcP_dFw

    前端可以使用 mammoth.js 解析 docx,获取 html 格式的响应。
    zicla
        22
    zicla  
       2020-07-28 11:22:18 +08:00
    我开源的 [蓝眼云盘]( t/691497) 也涉及到 office 预览的问题,可以适当参考一下吧。 https://tank-doc.eyeblue.cn/advance/preview.html
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     870 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:35 PVG 06:35 LAX 15:35 JFK 18:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86