需求是office文档的在线预览,同时尽量保护版权,然后发现了几种成熟的方案:
office 在线预览服务
微软官方提供的服务,预览和编辑效果是最好的,当然微软支持自己搭建这个环境 例如链接:https://view.officeapps.live.com/op/view.aspx?src=http%3A%2F%2Fvideo.ch9.ms%2Fbuild%2F2011%2Fslides%2FTOOL-532T_Sutter.pptx
服务根URL:https://view.officeapps.live.com/op/view.aspx
请求方式: GET请求 附加附加参数 src= [你自己文档的URL地址] 需要是公开可以外网访问的地址,内网部署服务可以参考:https://docs.microsoft.com/zh-cn/webappsserver/deploy-office-web-apps-server微软官方的文档,据说授权价格很高,自行评估,这个真的是集预览和编辑与一身最好的解决方案。
第三方文档在线预览服务
最著名的就是百度云文档服务,这个是付费服务,参考:https://cloud.baidu.com/doc/DOC/API.html#.E6.A6.82.E8.BF.B0 需要上传文档,然后百度服务为文档转码,预览则是需要借助百度的web sdk,类似百度文库的一种展现形式,这个是简单易用的一个方案。
其他也有一些永中office的服务等,具体没去测试了。如果需要再货比三家就行。
借助 libreoffice 和 imagick 转成图片
本机用 windows10 系统进行实践了这个方案:下载安装 libreoffice,imagick 软件,执行命令:soffice --headless --convert-to pdf xxx.docx Soffice
在 libreoffice 安装目录的 programs 中,名称为 soffice.exe , 如果没有加入环境变量的情况下,直接全路径调用这个命令,不用加 .exe 的执行,libreoffice 会将文件转换成同名的 pdf 格式文件,然后可以用 imagick 将 pdf 文件转换成 png 截图文件,命令:magick convert xxx.pdf image.png
,imgick 会将 pdf 文件转换成多张 png 格式的文件,名称为image1.png image2.png 这样的,后者可以自定义,和前者 pdf 的文件名相关就行,预览就在 github 上找一个好的翻阅效果 js 就可以搞定,这个方案只占用服务器资源,没有很多难度,而且自定义性很强,推荐使用。
顺带推荐 质量很高的课程, 欢迎扫码购买
© 版权归属完美教育开发团队所有,不仅是个人的总结
最后恰饭 阿里云全系列产品/短信包特惠购买 中小企业上云最佳选择 阿里云内部优惠券