SharePoint 2016本地环境无Office Online Server,如何生成文档预览?
方案1:jQuery + Mammoth.js 直接转Word为HTML预览
Mammoth.js是轻量的客户端.docx解析库,能将Word内容转换为干净的HTML,完全前端处理无需服务器依赖。
- 实现步骤:
- 通过SharePoint REST API获取Word文件的二进制数据流,接口示例:
/_api/web/getfilebyserverrelativeurl('/sites/你的站点/文档库/test.docx')/$value - 引入Mammoth.js的本地文件或CDN资源
- 用jQuery发起请求并处理转换:
$.ajax({ url: "/_api/web/getfilebyserverrelativeurl('/sites/demo/Documents/test.docx')/$value", method: "GET", headers: { "Accept": "application/octet-stream" }, xhrFields: { responseType: "arraybuffer" }, success: function(data) { mammoth.convertToHtml({arrayBuffer: data}) .then(function(result){ $("#preview-container").html(result.value); // 转换警告可按需处理:result.messages }); }, error: function() { $("#preview-container").html("文档加载失败"); } }); - 注意:仅支持.docx格式,老旧.doc文件需额外搭配兼容性工具(如docx2html)
- 通过SharePoint REST API获取Word文件的二进制数据流,接口示例:
方案2:Word转PDF后复用现有iframe预览逻辑
通过前置转换把Word转为PDF,再用你已生效的PDF预览方式:
- 本地部署场景可做两种转换方式:
- 服务器端定时转换:写简单的SharePoint控制台应用或自定义WebPart,批量将文档库的Word文件转成PDF并存到同一库(命名规则如
test.docx.pdf) - 客户端按需转换:若有前端构建环境,用
docx-pdf这类Node.js库做客户端转换
- 服务器端定时转换:写简单的SharePoint控制台应用或自定义WebPart,批量将文档库的Word文件转成PDF并存到同一库(命名规则如
- 前端判断逻辑(jQuery):
var docUrl = "/sites/demo/Documents/test.docx"; var pdfUrl = docUrl + ".pdf"; // 先检查对应PDF是否存在 $.ajax({ url: "/_api/web/getfilebyserverrelativeurl('" + pdfUrl + "')", method: "GET", headers: { "Accept": "application/json;odata=verbose" }, success: function() { $("#pdf-preview-iframe").attr("src", pdfUrl); }, error: function() { // PDF不存在时,降级到方案1的HTML预览 } });
方案3:Viewer.js 增强预览体验
Viewer.js可对HTML、PDF、ODT等格式提供带导航、缩放的预览界面,配合Mammoth.js的转换结果使用:
- 实现示例:
// 先通过Mammoth.js得到转换后的HTML内容 var htmlContent = result.value; // 将内容写入预览容器,初始化Viewer $("#viewer-wrap").html(htmlContent); new Viewer(document.getElementById('viewer-wrap'), { toolbar: true, navbar: true, title: false });
避坑提示
- 之前客户端渲染(CSR)无效是正常的:SharePoint 2016的CSR预览钩子依赖Office Online Server接口,无OOS环境下无法生效
- 跨域/权限问题:同域下调用SharePoint API无需额外认证,直接使用当前用户上下文即可
- 大文档处理:Mammoth.js处理超大.docx可能有性能问题,建议限制预览文件大小或做分片加载
内容的提问来源于stack exchange,提问作者jasleen kaur
相关产品推荐
相关产品推荐

