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/6/19 13:01:13阅读更多 →
AI红绿灯实时优化系统:轻量化光流+边缘状态机落地实践

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

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

2026/6/19 13:01:13阅读更多 →
如何在5分钟内为你的浏览器添加本地AI助手:Page Assist完全指南

如何在5分钟内为你的浏览器添加本地AI助手:Page Assist完全指南

如何在5分钟内为你的浏览器添加本地AI助手:Page Assist完全指南 【免费下载链接】page-assist Use your locally running AI models to assist you in your web browsing 项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist 你是否曾经希望在浏览…

2026/6/19 12:56:13阅读更多 →
GraphGPT文本-图对齐技术:5个核心步骤实现图结构信息编码

GraphGPT文本-图对齐技术:5个核心步骤实现图结构信息编码

GraphGPT文本-图对齐技术:5个核心步骤实现图结构信息编码 【免费下载链接】GraphGPT [SIGIR2024] "GraphGPT: Graph Instruction Tuning for Large Language Models" 项目地址: https://gitcode.com/gh_mirrors/gra/GraphGPT GraphGPT文本-图对齐技…

2026/6/19 14:31:21阅读更多 →
深入解析XC8宏汇编器指令:DEBUG_SOURCE与PSECT的内存与调试实战

深入解析XC8宏汇编器指令:DEBUG_SOURCE与PSECT的内存与调试实战

1. 项目概述:为什么需要深入理解XC8的宏汇编器指令如果你正在用Microchip的PIC单片机做开发,并且已经不止于在MPLAB X IDE里写写C代码,开始尝试混合编程、优化关键路径,或者想彻底搞懂链接器脚本(.lkr文件)…

2026/6/19 14:31:21阅读更多 →
UFLD-v2-plus-pp:从模型瘦身到车道线分类的实战改进

UFLD-v2-plus-pp:从模型瘦身到车道线分类的实战改进

1. UFLD-v2-plus-pp项目背景与核心痛点 车道线检测是自动驾驶和高级驾驶辅助系统(ADAS)的基础任务之一。UFLD-v2作为该领域的优秀开源模型,在实际工程落地时却面临两个典型问题:首先是模型体积庞大,原始权重文件达到60…

2026/6/19 14:31:21阅读更多 →
Kneed高级技巧:处理噪声数据的5个实用策略

Kneed高级技巧:处理噪声数据的5个实用策略

Kneed高级技巧:处理噪声数据的5个实用策略 【免费下载链接】kneed Knee point detection in Python :chart_with_upwards_trend: 项目地址: https://gitcode.com/gh_mirrors/kn/kneed Kneed是一个强大的Python库,专注于膝盖点检测(Kne…

2026/6/19 14:31:21阅读更多 →
Markoff项目构建指南:从源码到可执行应用

Markoff项目构建指南:从源码到可执行应用

Markoff项目构建指南:从源码到可执行应用 【免费下载链接】markoff A lightweight Markdown (CommonMark) previewer for macOS. 项目地址: https://gitcode.com/gh_mirrors/ma/markoff Markoff是一款轻量级的macOS Markdown预览工具,遵循CommonM…

2026/6/19 14:31:21阅读更多 →
MC68HC908JG16微控制器:振荡器与系统集成模块的深度解析与实战配置

MC68HC908JG16微控制器:振荡器与系统集成模块的深度解析与实战配置

1. 项目概述:从“心跳”到“神经中枢” 玩过单片机的朋友都知道,一个MCU要跑起来,离不开两样东西:一个稳定可靠的“心跳”,和一个能协调全身的“神经中枢”。在MC68HC908JG16这颗经典的8位微控制器里,这个“…

2026/6/19 14:26:21阅读更多 →
Photobucket付费墙背后:5美元买童年回忆却落得一场空!

Photobucket付费墙背后:5美元买童年回忆却落得一场空!

1. 付费墙初现如今身处万亿市值公司林立的时代,我们也不能轻易放弃5美元。就像Photobucket,它曾相当于过去的Imgur,我们小时候常把图片上传到这个网站,然后在各种论坛上分享链接,它简单好用,尽职尽责。但最…

2026/6/19 0:04:37阅读更多 →
如何在5分钟内掌握Mermaid Live Editor:实时图表编辑终极指南

如何在5分钟内掌握Mermaid Live Editor:实时图表编辑终极指南

如何在5分钟内掌握Mermaid Live Editor:实时图表编辑终极指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live…

2026/6/19 0:04:37阅读更多 →
yuzu模拟器内存修改技术深度解析:金手指功能实现原理与实践指南

yuzu模拟器内存修改技术深度解析:金手指功能实现原理与实践指南

yuzu模拟器内存修改技术深度解析:金手指功能实现原理与实践指南 【免费下载链接】yuzu 项目地址: https://gitcode.com/GitHub_Trending/yuz/yuzu yuzu作为目前最流行的开源Nintendo Switch模拟器,不仅提供了完整的游戏运行环境,还内…

2026/6/19 0:04:37阅读更多 →