首页/新闻资讯/正文详情

OnlyOffice 定制开发实践:庭审场景下的主控端屏幕跟随功能实现

发布时间:2026/9/25 6:54:43 来源:云帆数科 栏目:资讯中心
OnlyOffice 定制开发实践:庭审场景下的主控端屏幕跟随功能实现
在大多数人认知中OnlyOffice 的协同编辑能力已经足够满足多人在线编辑场景。但当 OnlyOffice 被应用到法院庭审、远程听证、会议记录、指挥调度等专业场景时会发现一个问题文档内容虽然实时同步了但人员关注的位置并没有同步。这也是本次基于 OnlyOffice 9.x 的一个深度定制项目所解决的问题。一、业务背景某法院庭审系统中书记员负责实时记录庭审内容法官查看庭审笔录律师查看庭审笔录其他旁听人员查看庭审笔录系统采用 OnlyOffice Word 编辑器作为庭审记录载体。理论上OnlyOffice 协同编辑已经能够实现书记员输入 → 所有人实时看到内容变化但在实际使用过程中却出现新的问题。例如书记员已经记录到第 20 页第20页 ↓ 书记员正在输入而某律师因为查看前面的内容页面停留在第 5 页第5页 ↓ 正在翻阅历史记录虽然数据已经同步成功文档内容同步了光标位置同步了但观看人员并不知道书记员当前记录到了哪里。需要频繁寻找当前输入位置。庭审过程中效率非常低。二、OnlyOffice 原生能力存在的问题场景OnlyOffice 原生能力存在的问题文档内容同步支持无问题协同编辑支持无问题光标显示支持只能看到协作者光标页面滚动同步不支持无法自动跟随页码同步不支持不知道主控端所在位置缩放比例同步不支持不同终端显示差异较大强制观看模式不支持无法统一控制主控端广播页面状态不支持无法实现屏幕联动观看端跟随开关不支持无法自主选择换句话说OnlyOffice 解决的是内容协同而司法庭审场景需要的是视图协同这是两个完全不同层面的能力。三、定制目标本次项目最终实现主控端看到什么观看端就可以同步看到什么。同时保留观看端自由查看能力。整体模式如下最终形成主控模式书记员控制全场视图。跟随模式观看端自动跟随书记员。自由模式观看端独立浏览历史内容。四、总体技术方案系统架构如下核心思想把 OnlyOffice 的文档协同扩展为视图协同。五、OnlyOffice 核心改造点本项目并非简单插件开发。由于官方接口无法满足需求因此对 OnlyOffice 进行了底层增强。1、自定义协作者广播通道官方协同编辑消息机制无法直接用于页面同步。因此新增BroadcastMessage()能力。支持当前文档内广播所有协作者接收主控端忽略自身消息实现主控端 ↓ 广播消息 ↓ 服务端 ↓ 所有观看端2、新增页面状态采集 API为了实现精准跟随。需要获取状态用途当前页码页面定位缩放比例统一显示滚动位置页面同步光标位置输入区域定位可视区域高度分辨率适配新增接口getCurrentPage() getZoom() getScrollPosition() getCursorPosition()用于实时采集页面状态。3、扩展插件通信机制OnlyOffice 插件原生能力有限。因此增加编辑器 → 插件 插件 → 编辑器双向通信机制。支持获取编辑器状态获取页码信息获取滚动位置调整页面位置调整缩放比例接收广播消息形成完整事件体系。六、屏幕跟随插件设计在此基础上开发独立插件插件入口位于顶部工具栏 ↓ 插件面板 ↓ 屏幕跟随点击后打开左侧侧边栏。主控端界面☑ 庭审主控模式开启后开始广播页面状态包括页码缩放比例滚动位置输入位置观看端界面☑ 跟随主控端或☐ 自由查看三种工作模式模式说明主控模式广播页面状态跟随模式自动同步定位自由模式不受影响退出模式停止同步七、最难解决的问题不同分辨率适配如果简单同步滚动条位置主控端1920×1080 观看端1366×768结果会出现光标被挡住输入区域不在可视范围页面跳动因此本项目采用输入位置可视区域算法而不是简单同步滚动值。同步逻辑效果24寸显示器笔记本双屏显示都能保证当前输入位置可见而不是简单跳转到相同坐标。八、性能表现项目验收指标指标要求页面同步延迟≤2秒编辑同步实时浏览器兼容Chrome浏览器兼容Edge文档类型DOCXOnlyOffice版本9.x实际测试中页面同步接近实时输入区域持续可见不影响原有协同编辑能力九、适用于哪些行业场景虽然最初来源于法院项目。但实际上可应用于大量行业。行业场景法院庭审笔录检察院讯问记录公安审讯记录政务会议纪要企业高层会议教育在线授课培训讲义同步指挥中心实时调度本质上属于“主讲人视图同步”能力十、总结OnlyOffice 原生协同编辑解决的是内容同步而本项目实现的是视图同步通过对 OnlyOffice 9.x 进行深度定制新增协作者广播通道新增页面状态采集 API新增编辑器与插件双向通信机制开发屏幕跟随插件实现跨分辨率智能定位最终实现主控端实时记录观看端实时跟随。对于法院庭审、远程听证、会议记录、在线培训等场景这类能力往往比单纯的协同编辑更有价值。这也是标准版 OnlyOffice 社区版和商业版均不具备的一项行业级定制能力。相关资源OnlyOffice最新版本镜像https://onlyoffice.moqisoft.com/docs/install/docker版本介绍https://onlyoffice.moqisoft.com/docs/product/summary技术交流183026419QQ群

相关推荐

人脸与物体识别实战:从VGG16到双任务协同的工程落地
人脸与物体识别实战:从VGG16到双任务协同的工程落地

1. 项目概述:从人眼到机器之眼,一场关于“看见”的技术迁徙计算机视觉不是让机器拍照,而是让它真正“看懂”。我做这个方向快八年了,从最早用OpenCV写十几行代码检测红绿灯,到现在带团队落地工业质检系统,最… · 2026/9/22 10:29:51

AI红绿灯实时优化系统:轻量化光流+边缘状态机落地实践
AI红绿灯实时优化系统:轻量化光流+边缘状态机落地实践

1. 项目概述:当红绿灯开始“看懂”车流,城市路口就不再只是机械切换 “Smart Control of Traffic Lights Using AI”——这个标题乍看是句技术陈述,但背后藏着一个正在全球数十座城市悄然落地的现实:红绿灯正从“定时器”进化成“… · 2026/9/22 3:29:46

OmenSuperHub终极指南:如何完全掌控你的惠普游戏本硬件性能
OmenSuperHub终极指南:如何完全掌控你的惠普游戏本硬件性能

OmenSuperHub终极指南:如何完全掌控你的惠普游戏本硬件性能 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是… · 2026/9/24 22:33:22

GEOFlow Chrome运营助手使用指南:设备配对与最小权限Token半自动化发布
GEOFlow Chrome运营助手使用指南:设备配对与最小权限Token半自动化发布

GEOFlow Chrome运营助手使用指南:设备配对与最小权限Token半自动化发布 【免费下载链接】GEOFlow Open-source GEO content engineering and multi-site distribution platform with AI quality inspection, illustrated admin help, hosted sites, browser-assiste… · 2026/9/25 20:06:36

SSM+微信小程序实现的餐厅堂食预订与点餐平台:桌台订座、预点菜与宴席预订单设计
SSM+微信小程序实现的餐厅堂食预订与点餐平台:桌台订座、预点菜与宴席预订单设计

SSM微信小程序实现的餐厅堂食预订与点餐平台:桌台订座、预点菜与宴席预订单设计 本文记录一个面向中型中餐厅的堂食预订与点餐平台的完整设计与实现过程。与市面上常见的综合在线订餐、扫码点餐类系统不同,本文把关注点放在「到店」场景:顾客… · 2026/9/25 20:06:23

Kali ToolKit
Kali ToolKit

781 个 Kali 工具 2053 条命令,装进一个 20MB 的 exe:我开源了 Kali ToolKit hello大家好,我是Malcode,一个专注于网安以及开发的人。 用 Kali 的人都懂一个痛点:工具实在太多了。 Kali 官方收录了七百多个工具&#… · 2026/9/25 20:06:17

MySQLTuner 文档同步工作流实战:doc-sync 脚本与版本一致性审计全解析
MySQLTuner 文档同步工作流实战:doc-sync 脚本与版本一致性审计全解析

数据库运维 【免费下载链接】MySQLTuner-perl MySQLTuner is a script written in Perl that will assist you with your MySQL configuration and make recommendations for increased performance and stability. 项目地址: https://gitcode.com/gh_mirrors/my/My… · 2026/9/25 20:06:11

C++入门到精通:类和对象(上)全方位解析
C++入门到精通:类和对象(上)全方位解析

前言 你是否曾好奇过,为什么 C 中 struct 和 class 都能定义类?它们之间到底有什么区别?类又是如何在内存中"活"起来的?如果你对这些问题感到困惑,那么这篇文章正是为你准备的。 本文将带你深入理解 C 的类和… · 2026/9/25 20:05:46

Lottery 抽奖系统实战:Docker 部署 XXL-JOB 分布式任务调度中心
Lottery 抽奖系统实战:Docker 部署 XXL-JOB 分布式任务调度中心

文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、… · 2026/9/25 20:05:46

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码