石墨文档中台(SDK)
    >=CO-1.6
    • >=CO-1.6
    • CO-1.5
    • CO-1.4
    • CO-1.2-1.3
    • <CO-1.2
    • 一文认识石墨文档中台
    • 文档中台支持的格式
    • 10 分钟创建协同文档
    • 10分钟创建预览文档
    • 示例代码仓库
    • 更新日志
    • 典型场景案例
      • 云盘场景
      • IM场景
    • 接口文档
      • 接口文档概览
      • 错误码说明
      • 石墨后端API
        • 请求签名凭证
          • 签名凭证类型
          • 签名凭证-Signature
          • 签名凭证-Token
        • 系统管理
          • 应用管理
            • 获取应用详情
            • 更新应用回调地址
          • 用户席位管理
            • 用户席位状态说明
            • 获取用户列表和席位状态
            • 激活用户席位​
            • 取消用户席位​
            • 批量设置用户席位
        • 协同文档创建删除
          • 访问协同文档
          • 创建协同文档
          • 创建协同文档副本
          • 删除协同文档
        • 预览文件
          • 访问预览文件
          • 创建文件预览缓存
        • 文档导入导出
          • 文档导入
            • 文档导入说明
            • 创建导入任务
            • 获取导入进度
            • 创建导入任务(旧版)
            • 获取导入进度(旧版)
          • 文档导出
            • 文档导出流程
            • 创建导出任务
            • 获取导出进度
        • 文档操作
          • 专业表格(Excel)
            • 专业表格接口参数说明
            • 获取表格内容
            • 获取表格中的评论数
            • 更新表格内容
            • 追加表格内容
            • 删除表格行
            • 新增表格工作表
          • 轻文档(Markdown)
            • 获取文档中的评论列表
          • 通用
            • 获取文件纯文本内容
            • 文件纯文本字数统计
            • 获取历史列表
            • 获取版本列表
            • 获取文档内容中所有的at人信息列表
          • 传统文档(Word)
            • 传统文档书签说明
            • 读取传统文档书签内容
            • 替换传统文档书签内容
      • 石墨前端API
        • 【前端】JS-API
        • 编辑器API
          • 幻灯片
          • 传统文档
          • 表格
          • 表单
          • 轻文档
          • 应用表格
      • 回调接口(接入方需实现)
        • 【后端】回调接口说明
        • 【后端】回调总览
        • 文件信息
          • 获取文件元信息-协同文档
          • 获取文件元信息-预览文档
          • 获取当前用户的文件列表
          • 获取文件的协作者列表
          • 获取接入方指定文件的完整访问地址
          • 获取文件元信息-协同文档自动任务(admin)
          • 根据指定用户获取文件元信息-协同文档(admin)
        • 用户信息
          • 批量获取用户信息(admin)
          • 获取当前用户信息
          • 获取当前用户所在团队信息
          • 获取指定用户信息
          • 获取用户水印信息
          • 获取用户部门路径
          • 批量获取用户信息
        • 团队和部门
          • 获取团队下的成员列表
          • 获取部门信息
          • 获取部门的下级部门节点
          • 获取部门下的成员分页列表
        • 搜索功能
          • 获取与文件相关的用户列表
          • 获取与文件相关的文件列表
          • 按关键字搜索文件和用户列表
        • 消息推送
          • 评论(Comment)
            • 轻文档
              • 添加评论
              • 删除评论
              • 结束评论
              • 对于评论的回复评论
            • 表格
              • 添加评论
              • 删除评论
              • 结束评论
              • 对于评论的回复评论
            • 传统文档
              • 添加评论
              • 更新评论
              • 删除评论
              • 对于评论的回复评论
            • 幻灯片
              • 添加评论
              • 删除评论
              • 结束评论
              • 对于评论的回复评论
            • 应用表格
              • 添加评论
              • 对于评论的回复评论
              • 删除评论
          • 讨论(Discussion)
            • 轻文档
              • 发送讨论消息
          • 提及(MentionAt @ 人)
            • 轻文档
              • 在评论中 at
              • 在讨论中 at
              • 在正文中 at
            • 表格
              • 在评论中 at
              • 在正文中 at
            • 传统文档
              • 在评论中 at
              • 在正文中 at
            • 应用表格
              • 在评论中 at
              • 在正文中 at
          • 日期提醒 (DateMention)
            • 轻文档
              • 创建
              • 修改
              • 删除
            • 表格
              • 创建
              • 修改
              • 删除
            • 传统文档
              • 创建
              • 修改
              • 删除
          • 文件内容更新 (FileContent)
            • 文件内容更新
          • 文档协作者协同状态变化 (Collaborator)
            • 文档协作者协同状态变化
          • 版本 (Revision)
            • 版本
          • 系统事件 (System)
            • 系统事件
          • (实验性) 回调请求错误
            • 回调请求错误
    • 常见问题
      • 复制粘贴、全屏操作不正常
      • 如何实现文档模板功能
      • 文档内容何时保存
      • 移动端不支持blob协议导致预览失败
      • 如何实现文件重命名
      • @人员时如何直接跳转至对应锚点
      • 如何通过接口修改文档内容
      • 访问接口提示 signature 无效怎么办
      • 文件预览或导入报错如何处理
      • 首次接入 SDK 报错 应该排查哪些接口
      • 文档预览如何做防盗链

    10分钟创建预览文档

    通过本文档可快速预览一个 Office 文档(如 Word、Excel、PPT)。
    接入方需要启动一个 HTTP 服务端,并提供文中指定的回调接口供石墨文档中台调用。关于回调接口的解释,参考:【后端】回调接口说明。
    前置准备
    接入方必须实现两个回调接口:
    当前用户信息接口
    文档元信息接口
    用户预览时 石墨 SDK 会自动回调这两个接口:先调用当前用户信息接口进行鉴权,再调用文档元信息接口获取文件下载地址等信息。如果这两个接口未正确实现,预览将无法正常工作。
    预览文档与协同文档的区别:
    【协同文档】是石墨在线文档类型(如 documentPro),支持多人实时协同编辑和预览访问。
    【预览文档】是第三方文件类型(如 .docx、.xlsx、.pptx),仅支持预览访问,不支持编辑。
    一个文件是预览还是协同类型,在生成 fileId 时就已确定,由接入方维护。
    两种文档的回调接口地址相同(/files/{fileId}),但返回的字段不同,接入方需根据 fileId 判断并返回对应类型的数据。

    预览文档流程图#

    步骤 1:接入方生成文件 id#

    例如:my-preview-file-a1b2c3
    这个 id 完全由接入方决定是什么,建议使用 uuid 等方式避免重复。

    步骤 2:接入方提供回调接口#

    接入方要实现以下两个接口供石墨服务端使用,接口必须使石墨服务端可访问。
    文档元信息接口
    提供一个石墨服务端可访问的 HTTP 接口,GET 请求:
    http://your-endpoint-url.com/files/my-preview-file-a1b2c3 时,结果为:
    {
      "id": "my-preview-file-a1b2c3",
      "name": "示例文档.docx",
      "type": "file",
      "permissions": {
        "readable": true
      },
      "downloadUrl": "http://your-endpoint-url.com/download/my-preview-file-a1b2c3.docx",
      "ext": "docx"
    }
    注意与协同文档回调的区别:
    type 固定为 file,表示第三方文件类型。
    必须提供 downloadUrl,石墨服务器会通过此地址下载文件内容进行解析渲染。
    必须提供 ext 字段(不带 .),用于标识文件扩展名,例如 docx、xlsx、pptx。
    permissions 中至少需要 readable: true,预览模式只关注可读权限。
    当前用户信息接口
    提供一个石墨服务端可访问的 HTTP 接口,GET 请求
    http://your-endpoint-url.com/users/current/info 时,结果为:
    {
      "id": "userid123",
      "name": "张三",
      "avatar": "http://fake.site/user-123.png",
      "email": "user123@fake.site",
      "teamGuid": "123"
    }

    步骤 3:访问预览#

    预览文档无需像协同文档那样先调用创建文件接口,直接通过 iframe 访问预览页面即可。
    预览地址格式为:
    https://office.shimoapi.com/sdk/v2/api/cloud-files/{fileId}/page?signature={signature}&token={token}

    使用石墨前端对接 demo(推荐)#

    前端 demo 地址:https://github.com/shimo-open/sdk-demo-fe
    下载项目,在 index.js 中填入 signature, token, endpointUrl, fileId 这四个变量后,用浏览器打开 index.html 即可看到预览页面。

    手动创建#

    写一个最简单的 html 页面,将预览页面嵌入 iframe 中。
    新建一个 index.html 文件,内容如下:
    用浏览器打开 index.html 文件,页面中将出现文档的预览内容。
    首次访问预览时,石墨后台会异步创建预览缓存,此过程可能需要等待。缓存创建完成后,预览页面会自动刷新显示完整内容。

    预览加速(可选)#

    如果需要加快用户首次打开文件的速度,可在服务端提前调用 创建文件预览缓存 接口创建预览缓存,这样用户打开预览时无需等待。
    注意:由于预览缓存机制,同一 fileId 经过第一次预览产生预览缓存后,再更新回调中 downloadUrl 的内容是无法修改预览结果的。如需更新预览内容,需要使用新的 fileId。
    修改于 2026-04-02 02:48:20
    上一页
    10 分钟创建协同文档
    下一页
    示例代码仓库
    Built with