leipengcheng
V2EX  ›  问与答

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

  •  
  •   leipengcheng · Nov 17, 2022 · 3776 views
    This topic created in 1459 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    2 、页面中 iframe 弹窗即可;
    ${host}/pdfjs/web/viewer.html?file=${pdfUrl}
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   850 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 20:58 · PVG 04:58 · LAX 12:58 · JFK 15:58
    ♥ Do have faith in what you're doing.