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

16 小时 49 分钟前
 sinORcos
最近在搞一个内部用的程序开发,因为单位里近几年用 wps 和 et 格式的文件越来越多,所以不得不考虑兼容 wps 和 et 格式的在线预览问题。

找遍全网也没发现可靠的在线预览可用,官方倒是有一个开放平台,但是一方面一定要走官方的平台才行,不能做到纯前端渲染,而且还要花钱,还是先充值后扣费,我们领导是非常抠的,不可能同意预览个文档还要花钱这种事。

没办法,只好用 pywpsrpc 调用服务器上的 linux 桌面版把所有 wps 和 et 格式的文件都转成 pdf 格式,再使用 pdf.js 做在线预览。不仅要额外保存 pdf 格式的文件,文件处理的管线也变长了,很烦躁。

无法理解 WPS 官方的这种政策,我就要个预览,不要编辑,结果“开放平台”把预览和编辑绑在一起卖,预览还不能只走前端渲染,这开放了个鬼啊!关键是我用 word 和 excel 是可以打开 wps 和 et 格式的,都能正常显示,怎么搞个纯前端的预览这么难呢?金山这政策还怎么推广自己的格式呢?哦对了,强行推广嘛,有政府撑腰怕什么呢
2089 次点击
所在节点    程序员
26 条回复
DsuineGP
16 小时 19 分钟前
石墨文档, 有免费的私有部署版本
pckillers
16 小时 13 分钟前
实际上 docx 才是开放标准吧。wps 与 doc 都是能进历史垃圾堆的封闭标准。
catamaran
16 小时 13 分钟前
客户要下载 et 格式的文件,直接生成 docx ,改一下扩展名完事
bbsabc2
16 小时 9 分钟前
下发通知 全部使用 docx 格式。
sinORcos
15 小时 55 分钟前
@bbsabc2 #4 我说了不算
sinORcos
15 小时 51 分钟前
@pckillers #2 是的,docx 和 xlsx 才是真正的开放标准,我认为任何在文档文件格式这个领域搞封闭标准的都应该拖出去弹小鸡鸡弹到死
sinORcos
15 小时 21 分钟前
@DsuineGP #1 石墨的免费版本好像不支持私有化部署吧?
Kavcc
15 小时 16 分钟前
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` 配置项

```
Kavcc
15 小时 14 分钟前
@catamaran 直接改就会收到警告⚠

此文件仅 WPS 能打开,操作当前文件会造成文件损坏
• 此文件为私密文档,请使用 WPS Office 打开
个人用户:访问 WPS 官方网站下载 http://www.wps.cn
企业用户:请联系企业管理员获取最新版本
• 请勿对文件进行任何操作
对文件进行编辑或另存为操作,会导致数据丢失,无法恢复
busier
15 小时 1 分钟前
政治任务的产物,还真当这玩意是市场需求
xyooyx
14 小时 4 分钟前
后缀只决定文件打开方式,不影响文件内容,只是可视化软件一般都会根据文件后缀筛选可选文件。如果用指令打开,你把后缀改成 et_hello_word 一样可以打开
weixind
13 小时 35 分钟前
商业软件收费无可厚非。

"不可能同意预览个文档还要花钱"是你们老板的问题,不是 wps 的问题。

而且他们家收费不贵,小流量一个月几百块。你搞个服务器转文档的钱也得这个价,还不一定能保证可用性。
PopRain
10 小时 43 分钟前
@weixind 所有的内部文档都贡献给 wps 随便看?
PopRain
10 小时 41 分钟前
改后缀可能的原因:Office Open XML ( OOXML ) 是由微软主导开发的基于 XML 和 ZIP 压缩技术的开放文档格式标准,于 2006 年被纳入 ECMA-376 标准,2008 年正式成为国际标准( ISO/IEC 29500 )。它是微软 Office 套件( Word 、Excel 、PowerPoint 等)从 2007 版起的默认文件格式(如.docx 、.xlsx 、.pptx ),核心是将文档内容拆解为结构化的 XML 文件,并打包为 ZIP 压缩包,实现内容透明化与跨平台兼容。
e23nome
10 小时 27 分钟前
@sinORcos docx/xlsx 并不是开放标准。如果真的是开放标准,你见过哪个文档/表格编辑器可以
1. 100%渲染出和 word/excel 一样的结果;
2. 能编辑后保存 docx/xlsx ,然后用 word/excel 打开,保持所有编辑的渲染结果一致。

office 其实有很多私有实现与所谓标准不一致的地方。
sinORcos
9 小时 58 分钟前
@weixind #12 我从不反对商业软件收费,但是一个文件格式,我连看看内容都要收费是不是不太合理?编辑能力收费我觉得一点问题都没有,预览和编辑捆绑就不太能让人接受
sinORcos
9 小时 55 分钟前
@PopRain #14 实测过了,.wps 和.et 格式能识别出两种类型,ooxml 类型的改成 docx 和 xlsx 可以无任何提示直接打开; OLE/BIFF 类型的改成 doc 和 xls 可以无任何提示直接打开
sinORcos
9 小时 52 分钟前
@e23nome #15 这一点老哥你说的对,标准是公开的,但是微软在渲染和实现上肯定是没少塞私货
ysc3839
9 小时 39 分钟前
WPS 大约是 2005 版就把自己的.wps 格式改为基于微软的.doc 格式了。
sevenfxx
8 小时 50 分钟前
wps 格式就是老版的 office 格式,把扩展名改为 doc,xls 完全兼容

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

https://v2ex.ih06.com/t/1237389

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

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

© 2021 V2EX