求助 vue 和 uniapp 的 pdf, word,预览怎么做? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leipengcheng
V2EX    问与答

求助 vue 和 uniapp 的 pdf, word,预览怎么做?

  •  
  •   leipengcheng 2022-11-17 12:05:08 +08:00 2692 次点击
    这是一个创建于 1057 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前是我后端把文件转成图片,给前端展示;感觉有点尴尬,我要把图片 url 保存进数据库,图片越来越多,感觉很冗余

    13 条回复    2022-11-17 18:23:47 +08:00
    ccc008
        1
    ccc008  
       2022-11-17 12:09:02 +08:00
    word 我知道微软有个预览服务。https://view.officeapps.live.com/op/view.aspx?src=”的后面拼上你的服务器 word 文件地址;
    rsy
        2
    rsy  
       2022-11-17 13:26:26 +08:00
    https://kkfileview.keking.cn/
    kkFileView 为文件文档在线预览解决方案,该项目使用流行的 spring boot 搭建,易上手和部署,基本支持主流办公文档的在线预览,如 doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等
    fiypig
        3
    fiypig  
       2022-11-17 13:36:24 +08:00
    uniapp 有浏览的,你查看下文档,但是会先下载在浏览,速度很慢,我现在改成,直接后台上传的时候就直接传图片,后面就直接图片打开。
    hymxm
        4
    hymxm  
       2022-11-17 14:13:42 +08:00
    <embed>
    PrtScScrLk
        5
    PrtScScrLk  
       2022-11-17 15:37:21 +08:00
    uni.openDocument(OBJECT)

    新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx 。

    API - 文件这里。
    先下载再打开,挺方便的其实。会用系统自带的相关应用打开。
    braveker
        6
    braveker  
       2022-11-17 16:32:09 +08:00
    <embed
    src="http://www.v2ex.com/doc.pdf"
    type="application/pdf"
    width="100%"
    height="100%"
    >
    leipengcheng
        7
    leipengcheng  
    OP
       2022-11-17 16:42:42 +08:00
    @PrtScScrLk 需要在我们的页面预览,不能打开其他应用。。。
    PrtScScrLk
        8
    PrtScScrLk  
       2022-11-17 16:51:32 +08:00
    @leipengcheng #7 ???这么变态的需求,淦
    Tdy95
        9
    Tdy95  
       2022-11-17 17:00:47 +08:00
    @leipengcheng 在页面浏览的话,我们之前的方案是服务端有个渲染服务(我们是前端自己用 node 写的),拿着文件 ID 请求服务器,然后直接返回渲染后的图片,是因为兼容性问题使用的这个方案。
    tolbkni
        10
    tolbkni  
       2022-11-17 17:03:45 +08:00
    PDF 简单,用 Mozilla 的 PDF.js 就可以了
    Word 等 Office 类文件稍微复杂一些,有几种选择:
    1 、用微软的 OWA 或者类似楼上的第三方在线预览服务
    2 、使用 Headless 模式的 LibreOffice 包装一个服务,把 Word 等文档转换成 PDF 格式,最好限定下页数,然后用 PDF.js 预览。存储的问题,可以保留一段时间,解决热点文档的频繁预览,冷门文档实时渲染速度也还行
    ZeroJi
        11
    ZeroJi  
       2022-11-17 17:33:10 +08:00
    pdf 用 pdf.js
    ZeroJi
        12
    ZeroJi  
       2022-11-17 17:35:23 +08:00
    一回车就发出去了, 接着上面, word 用 docx-preview, 都是下载 blob 数据流然后解析. uniapp 没用过不知道...
    raolight
        13
    raolight  
       2022-11-17 18:23:47 +08:00   1
    最近刚好做了这么个东西,也是用的 pdf.js ,要在微信页面里预览,LZ 可以参考一下;

    1 、下载静态资源后部署生成链接,其他项目也能用方便点;
    https://mozilla.github.io/pdf.js/getting_started/#download
    用的 older browsers ,不然旧浏览器会有兼容显示问题

    2 、页面中 iframe 弹窗即可;
    ${host}/pdfjs/web/viewer.html?file=${pdfUrl}
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1171 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:37 PVG 07:37 LAX 16:37 JFK 19:37
    Do have faith in what you're doing.
    ubao 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