Word-like编辑器 - 教程

Dsoframer (32位亲测可用)

开源免费,但是早已停止更新,而且不支持x64应用程序,虽然能注册成功,但是调用提示"未注册的类"。

LibreOfficeKit\ LibreOffice UNO

开源办公套件 LibreOffice的核心组件之一。

跨平台情况

可用于 Windows、Linux、macOS。
Windows下需要下载安装完整LibreOffice客户端。

收费情况

免费、开源。遵循MPL开源协议,源代码和编译库均可免费获取,无需支付任何授权费用。

下载安装

  1. 下载安装LibreOffice程序。
  2. 下载LibreOffice SDK。安装到LibreOffice同一目录。
    在这里插入图片描述

https://www.libreoffice.org/download/download-libreoffice/
https://downloadarchive.documentfoundation.org/libreoffice/old/25.8.3.2/win/x86_64/

  1. 在SDK安装后的目录中双击运行setsdkenv_windows.bat,设置环境变量。
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.12.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'
******************************************************************
*
* SDK environment is prepared for Windows
*
* SDK = E:\Program Files\LibreOffice\sdk
* Office = E:\Program Files\LibreOffice
* Make = E:\MinGW\bin
* Zip = E:\Program Files\UnxUtils\usr\local\wbin
* cat = E:\Program Files\UnxUtils\usr\local\wbin
* sed = E:\Program Files\UnxUtils\usr\local\wbin
* C++ Compiler = E:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
* C# and VB.NET compilers = C:\Windows\Microsoft.NET\Framework64\v2.0.50727
* Dotnet =
* Java =
* Special Output directory = E:\libreoffice25.8_sdk
* Auto deployment = YES
*
******************************************************************
  1. cppumaker生成SDK include包含文件。
"E:/Program Files/LibreOffice/sdk/bin/cppumaker.exe" -Gc -O "E:/Program Files/LibreOffice/sdk/include" "E:/Program Files/LibreOffice/program/types.rdb" "E:/Program Files/LibreOffice/program/types/offapi.rdb"

集成方案

方案1

用 QProcess 启动独立 LibreOffice 窗口并 setParent/winId “嵌入”在 Qt 窗口中(亲测可用)。

未解决问题:
多个word文档打开切换时,程序由于无法关闭上一文档导致卡死。

方案2:自绘UI

  1. 按官方说明编译或下载带 LibreOfficeKit 的 LibreOffice;引入头文件 LibreOfficeKit.hxx 等。
  2. 在 Qt 项目中通过 lok::Office::create() 初始化,再用 lok::Office::documentLoad() 打开 .docx
  3. 使用 lok::Document::paintTile() 把页面渲染到 QImage 或 OpenGL 纹理里,显示在控件中。
  4. 将鼠标/键盘事件转换为 lok::Document::postMouseEvent()/postKeyEvent(),以实现编辑。
  5. 监听回调 LibreOfficeKitCallback,处理文档变更、光标移动等。

方案三:LibreOffice ActiveX已废弃。

参考资料

libreofficekit
libreofficekit github
libreoffice开发文档

TX Text Control

介绍:
功能强大的文字处理控件,提供丰富的文档编辑功能,支持多种文档格式。

跨平台情况:
主要支持Windows平台,有.NET和ActiveX版本。

开发方案:
商业软件,需要购买许可证。

集成步骤:
1)购买并获取 TX Text Control SDK。
2)在 Windows上使用 QAxWidget嵌入ActiveX控件。
3)通过COM接口与控件交互。

参考资料:
TX Text Control Documentation
文字处理控件TX Text Control的使用

Microsoft Word的OLE/COM嵌入

简单介绍:
通过OLE技术将 Microsoft Word嵌入到应用程序中,提供完整的Word编辑体验。

跨平台情况:
仅限 Windows平台。且本地需安装 Microsoft Office应用程序。

收费情况:
需要安装 Microsoft Office,并拥有相应许可证。

集成步骤:
1)使用QAxWidget创建Word应用程序对象。
2)通过COM接口打开和编辑文档。
3)处理OLE容器的事件和布局。

基于Web方案

Quill(亲测可用)

轻量级富文本编辑器,API简洁。

跨平台情况

纯前端,跨平台。

收费情况

完全免费,BSD 3-Clause协议。

下载安装
  1. 安装node
  2. 安装quill
npm install quill
  1. 安装表格插件:
    原生不支持表格,需安装插件后方可使用。

PS:可能不支持复杂的Office文档格式(.docx,.xlsx等)的完整保真度编辑。

参考资料

官网

WebOffice控件

简单介绍:
基于Web的Office文档编辑控件,可在浏览器中实现Word、Excel等文档的编辑。

跨平台情况:
操作系统:
支持 Windows XP, Windows 2003, Windows Vista, Windows7, Windows8.1,Windows10及以上版本。其中包括32位的和64位的操作系统,支持最新的Win10操作系统32位和64位系统。

Office版本:
客户端电脑有Office、Wps或永中Office之一。支持Office2003、Office2007、Office2010、Office2013、Office2016、Office2019等(非Home版、非Student版、非精简版或绿色版)。支持Wps;支持永中Office。支持Office的32位和64位。

收费情况:
商业软件,需要购买授权。
不绑定项目、不绑定服务器、不限用户数以及不重复收费,WebOffice在服务端不运行特定程序和DLL,所以购买一套WebOffice控件授权可同时支持。

集成步骤:
1)在Qt中使用QWebEngineView嵌入浏览器。
2)加载WebOffice的HTML页面。
3)通过JavaScript与WebOffice交互。
PS:C++版无示例代码,有C#的示例代码,基于JS实现。

参考资料:
官方网站
WebOffice控件版本功能比较

ONLYOFFICE

简单介绍:
开源的在线文档编辑器,支持DOCX、ODT等格式,提供协作编辑功能。

跨平台情况:
支持Windows和Linux服务器部署。

收费情况:
开源版免费,商业版需要授权。

集成步骤:
1)部署ONLYOFFICE Document Server。
2)在Qt中使用QWebEngineView嵌入编辑器。
3)通过JavaScript API与Web编辑器交互。
4)涉及前端SDK、后端SDK、文档服务器三层架构。需要自建文档服务器。

参考资料:
官网
ONLYOFFICE开发者文档

Collabora Online

简单介绍:
基于LibreOffice的在线办公套件,提供文档编辑和协作功能。

跨平台情况:
支持Windows和Linux。

收费情况:
开源(AGPL协议),商业支持需付费。

集成步骤:
1)部署Collabora Online服务。
2)在Qt中使用QWebEngineView嵌入。
3)通过WOPI接口或REST API进行集成。
4)客户端-服务器架构:需要在 Linux专用服务器或 VM上安装 Collabora Online服务或使用docker。

参考资料:
官网

TinyMCE

简单介绍:
功能丰富的富文本编辑器,插件生态完善。可导出为DOCX。

跨平台情况:
纯前端,跨平台。

收费情况:
最少79美元/月 TinyMCE 2025定价

集成步骤:
1)在Qt中使用QWebEngineView嵌入。
2)加载TinyMCE编辑器。
3)通过JavaScript API与编辑器交互。

参考资料:
官网

CKEditor 5

简单介绍:
模块化富文本编辑器,模块化,可定制性强。

跨平台情况:
纯前端,跨平台。

收费情况:
144美元/月 CKEditor&add-ons pricing-Choose a plan or craft your own flexible offer

集成步骤:
1)在Qt中使用QWebEngineView嵌入。
2)加载CKEditor编辑器。
3)通过JavaScript API与编辑器交互。

参考资料:
官网

WebOffice控件

特点:国内产品,中文支持较好
功能:支持Word、Excel、PPT;图片、表格;与数据库集成
平台:Windows/Linux
集成:提供JavaScript API
许可证:商业授权
官网:https://www.officectrl.com

GroupDocs.Editor

特点:多格式支持(DOCX、ODT、RTF、HTML等)
功能:编辑、转换、导出;图片、表格
平台:.NET、Java、Node.js(Windows/Linux)
集成:提供多种语言SDK
许可证:商业授权
官网:https://products.groupdocs.com/editor

UEditor

独立/一体化
百度出品,功能丰富,开箱即用,中文文档友好
支持
支持
内置支持

WangEditor

独立/轻量级
国产,TypeScript开发,轻量简洁,开源免费
支持
支持
需自定义开发

Slate.js

框架(React)
非成品,是可深度定制的框架,用于构建复杂编辑器
可定制
可定制
可定制

Tiptap

框架(Vue/React)

基于Prosemirror,无渲染架构, Vue/React集成佳
可定制
可定制
可定制

Froala Editor

功能:富文本编辑器,界面简洁,支持图片、表格
集成方式:JavaScript SDK,可通过 Qt WebEngine嵌入
跨平台:支持 Windows、Linux
收费情况:
商业许可:约$199/域名/年
多域名许可:约$499-$999/年
企业版:需联系销售

Summernote

功能:轻量级富文本编辑器,支持图片、表格
集成方式:JavaScript SDK,可通过 Qt WebEngine嵌入
跨平台:支持 Windows、Linux
收费情况:
完全免费(MIT),可用于商业项目

腾讯文档开放平台

功能:在线文档编辑,支持图片、表格、协作
集成方式:提供API和SDK
跨平台:支持 Windows、Linux
收费情况:
基础版:免费(有限制)
企业版:需联系销售,按用户数或调用量计费

飞书文档开放平台

功能:在线文档编辑,支持图片、表格、协作
集成方式:提供API和SDK
跨平台:支持 Windows、Linux
收费情况:
基础版:免费(有限制)
企业版:需联系销售,按用户数或调用量计费

金山文档 API

功能:在线文档编辑,支持图片、表格
集成方式:提供API和SDK
跨平台:支持 Windows、Linux
收费情况:
需联系销售获取报价

石墨文档API

功能:在线文档编辑,支持图片、表格、协作

集成方式:提供API和SDK
跨平台:支持 Windows、Linux
收费情况:
基础版:免费(有限制)
企业版:需联系销售

其它技术

Fastreport

HTML

三、附录

1、文本编辑器:
1.1 wxMEdit
wxMEdit-跨平台文本与十六进制编辑器-开源软件
跨平台的文本/十六进制编辑器。

1.2 QScintilla

2、其它语言富文本编辑器:
2.1 TRichEdit
[官方网站: Resources for TRichView: Additional Delphi Components, Actions,Spell-Checkers, Reporting Tools](官方网站: Resources for TRichView: Additional Delphi Components, Actions,Spell-Checkers, Reporting Tools)
用 Delphi编写,不需要外部 DLL或 ActiveX文件。

3、无交互界面
3.1 KD Reports
基于Qt的报表生成库,支持创建复杂的、数据驱动的报表,适用于商业应用、数据可视化等场景。它提供灵活的布局设计、表格生成、图表嵌入等功能,并支持导出为PDF、HTML等格式。
[KD Reports| KDAB](KD Reports| KDAB)
可显示渲染,但不可编辑。
收费情况:开源。

4.5 DuckX
4.6 Docx
lpxxn/docx:qt office word lib
QAxWidget/QAxObject(Windows平台)
QtWebEngine+Web Office解决方案

Aspose.Words for C++

定价:$5037/永久 定价信息 | Aspose.Words Product Family

open-editor

https://github.com/SignitDoc/open-editor

Rtdui

https://rtdui.com/getting-started

WYSIWYG富文本编辑器

本地word-like Office

永中Office

个人版、移动版和Linux版是免费且无任何广告的,专业版可以免费试用1年。
另外永中Office还支持定制开发。

LibreOffice

OpenOffice

Apache OpenOffice和 LibreOffice都是OpenOffice.org的现代衍生产品。
OpenOffice_oldmtn的博客-CSDN博客

Qt集成方案

方案一:Qt WebEngine

基于Chromium,支持现代Web技术
支持Windows、Linux
可嵌入上述Web编辑器
支持剪贴板操作(复制/粘贴)

方案二:CEF(Chromium Embedded Framework)

功能更完整,可完全控制浏览器行为
支持Windows、Linux
需要额外集成工作

posted @ 2025-12-16 16:59  clnchanpin  阅读(60)  评论(0)    收藏  举报