V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
leipengcheng
V2EX  ›  问与答

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

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

    目前是我后端把文件转成图片,给前端展示;感觉有点尴尬,我要把图片 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="/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   ·   我们的愿景   ·   实用小工具   ·   2807 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:55 · PVG 20:55 · LAX 05:55 · JFK 08:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.