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

2022-11-17 12:05:08 +08:00
 leipengcheng

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

1768 次点击
所在节点    问与答
13 条回复
ccc008
2022-11-17 12:09:02 +08:00
word 我知道微软有个预览服务。https://view.officeapps.live.com/op/view.aspx?src=”的后面拼上你的服务器 word 文件地址;
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
2022-11-17 13:36:24 +08:00
uniapp 有浏览的,你查看下文档,但是会先下载在浏览,速度很慢,我现在改成,直接后台上传的时候就直接传图片,后面就直接图片打开。
hymxm
2022-11-17 14:13:42 +08:00
<embed>
PrtScScrLk
2022-11-17 15:37:21 +08:00
uni.openDocument(OBJECT)

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

API - 文件这里。
先下载再打开,挺方便的其实。会用系统自带的相关应用打开。
braveker
2022-11-17 16:32:09 +08:00
<embed
src="/doc.pdf"
type="application/pdf"
width="100%"
height="100%"
>
leipengcheng
2022-11-17 16:42:42 +08:00
@PrtScScrLk 需要在我们的页面预览,不能打开其他应用。。。
PrtScScrLk
2022-11-17 16:51:32 +08:00
@leipengcheng #7 ???这么变态的需求,淦
Tdy95
2022-11-17 17:00:47 +08:00
@leipengcheng 在页面浏览的话,我们之前的方案是服务端有个渲染服务(我们是前端自己用 node 写的),拿着文件 ID 请求服务器,然后直接返回渲染后的图片,是因为兼容性问题使用的这个方案。
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
2022-11-17 17:33:10 +08:00
pdf 用 pdf.js
ZeroJi
2022-11-17 17:35:23 +08:00
一回车就发出去了, 接着上面, word 用 docx-preview, 都是下载 blob 数据流然后解析. uniapp 没用过不知道...
raolight
2022-11-17 18:23:47 +08:00
最近刚好做了这么个东西,也是用的 pdf.js ,要在微信页面里预览,LZ 可以参考一下;

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

2 、页面中 iframe 弹窗即可;
${host}/pdfjs/web/viewer.html?file=${pdfUrl}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/895897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX