WPS 格式越来越多,但是这个封闭格式却没有可靠的在线预览可用

查看 167|回复 23
作者:sinORcos   
最近在搞一个内部用的程序开发,因为单位里近几年用 wps 和 et 格式的文件越来越多,所以不得不考虑兼容 wps 和 et 格式的在线预览问题。
找遍全网也没发现可靠的在线预览可用,官方倒是有一个开放平台,但是一方面一定要走官方的平台才行,不能做到纯前端渲染,而且还要花钱,还是先充值后扣费,我们领导是非常抠的,不可能同意预览个文档还要花钱这种事。
没办法,只好用 pywpsrpc 调用服务器上的 linux 桌面版把所有 wps 和 et 格式的文件都转成 pdf 格式,再使用 pdf.js 做在线预览。不仅要额外保存 pdf 格式的文件,文件处理的管线也变长了,很烦躁。
无法理解 WPS 官方的这种政策,我就要个预览,不要编辑,结果“开放平台”把预览和编辑绑在一起卖,预览还不能只走前端渲染,这开放了个鬼啊!关键是我用 word 和 excel 是可以打开 wps 和 et 格式的,都能正常显示,怎么搞个纯前端的预览这么难呢?金山这政策还怎么推广自己的格式呢?哦对了,强行推广嘛,有政府撑腰怕什么呢
同志们,经过测试,我确定了一个大概大多数人没有关注到的小细节。
前面也说了,我偶然发现使用 word 和 excel 是可以打开 wps 文件和 et 文件的,且内容显示正常。所以我就突发奇想,把 wps 文件和 et 文件的扩展名分别改为 doc 和 xls ,然后直接双击就可以使用 word 和 excel 打开,我又使用了 github 上的 flyfish-dev/file-viewer 项目提供的在线 demo 测试了一下,也能正常打开,且内容准确无误。
嗯,这个世界真是个巨大的草台班子。
        
   
   
   

WPS, 兼容, 预览

DsuineGP   
同志们,经过测试,我确定了一个大概大多数人没有关注到的小细节。
前面也说了,我偶然发现使用 word 和 excel 是可以打开 wps 文件和 et 文件的,且内容显示正常。所以我就突发奇想,把 wps 文件和 et 文件的扩展名分别改为 doc 和 xls ,然后直接双击就可以使用 word 和 excel 打开,我又使用了 github 上的 flyfish-dev/file-viewer 项目提供的在线 demo 测试了一下,也能正常打开,且内容准确无误。
嗯,这个世界真是个巨大的草台班子。
pckillers   
石墨文档, 有免费的私有部署版本
catamaran   
实际上 docx 才是开放标准吧。wps 与 doc 都是能进历史垃圾堆的封闭标准。
bbsabc2   
客户要下载 et 格式的文件,直接生成 docx ,改一下扩展名完事
sinORcos
OP
  
下发通知 全部使用 docx 格式。
sinORcos
OP
  
@bbsabc2 #4 我说了不算

sinORcos
OP
  
@pckillers #2 是的,docx 和 xlsx 才是真正的开放标准,我认为任何在文档文件格式这个领域搞封闭标准的都应该拖出去弹小鸡鸡弹到死
Kavcc   
@DsuineGP #1 石墨的免费版本好像不支持私有化部署吧?

Kavcc   
AI 给的方案是用 libreoffice 转换为 pdf 进行预览,上传时自动转换为 pdf ,关联到原始文件,测试了一下满足基本预览需求。
```md
# WPS / Office 在线预览
基于 PHP + MySQL 的本地文件预览程序,支持 doc/docx/xls/xlsx/ppt/pptx/pdf 在线查看。
## 部署步骤
1. 把 `wps-viewer/` 目录放到你的 Web 根目录(如 `htdocs/` 或 `www/`)。
2. 修改 `config.php` 中的数据库账号密码(默认库名 `wps_viewer`,程序会自动建库建表)。
3. 确保 `wps-viewer/uploads/` 与 `wps-viewer/cache/` 可写。
4. 启动服务器(任选其一):
   - 直接用 PHP 内置服务器:`php -S 127.0.0.1:8080 -t wps-viewer`
   - 或放入 Apache/Nginx + PHP 环境,访问 `index.php`。
5. 浏览器打开 `http://127.0.0.1:8080/` 上传文件即可预览。
## 预览策略
| 格式 | 渲染方式 |
|------|----------|
| docx | 浏览器端 mammoth.js 转 HTML |
| xls / xlsx | 浏览器端 SheetJS 转表格 |
| pdf | pdf.js / iframe 直接显示 |
| doc / ppt / pptx | LibreOffice 转 PDF 后显示 |
| wps / et / dps ( WPS 专有) | LibreOffice 转 PDF 后显示 |
> WPS 专有格式(.wps 文字 / .et 表格 / .dps 演示)均通过 LibreOffice 导入再转 PDF ,依赖本地安装 LibreOffice 。若转换失败,页面会提示下载原文件。
## 关于旧格式( doc/ppt )
doc/ppt 需要本地安装 LibreOffice 。在 `config.php` 中填好 `soffice` 路径,或确保程序能自动探测到。未安装时,页面会提示直接下载原文件。
## 文件说明
- `index.php` 上传 + 文件列表
- `upload.php` 上传接口(写入 MySQL 元数据 + 落盘)
- `preview.php` 按类型分发预览
- `serve.php` 安全读取原始文件
- `convert.php` LibreOffice 转 PDF
- `view_pdf.php` 读取转换后的 PDF
- `db.php` 数据库连接与建表
- `config.php` 配置项
```
您需要登录后才可以回帖 登录 | 立即注册

返回顶部