PageOffice 开发者中心 PageOffice 开发者中心
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
  • 开始

  • 通用控制

  • Word

    • 常用控制

      • 强制留痕模式编辑
      • 显示痕迹列表效果
      • 只读打开文档
      • 文件在线安全浏览
      • 比较两个Word文件的内容差异
      • 编辑时禁止拷贝到外部
      • 禁止Word中鼠标右键
      • 多用户同时编辑
      • Word多文件合并
      • 控制Word编辑区域(局部编辑)
      • 添加水印
      • 插入分页符
      • 模板套红
      • 从模板起草文件
      • 创建空白的word、excel、ppt
      • 用户自定义模板中数据区域
      • 用户自定义模板中数据标签
      • 数据区域与数据标签的区别
      • Word全文检索
      • Word套打
      • 锁定文本样式
        • 用前端框架内置对话框在Word中填空填表
        • 保存Word首页为图片
      • 动态填充

      • 用户输入提交

      • JS控制

    • Excel

    • PDF

    • FileMaker

    • PPT

    • 更多

    目录

    锁定文本样式

    # 锁定文本样式

    注意

    本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

    在实际项目开发中,我们经常会遇到Word文档样式管理相关的如下需求场景:

    在某些情况下,对Word文档的样式要求严格控制。为实现这一目标,文档通常基于预定义模板创建,且仅允许用户在指定位置填写内容,而不允许其修改指定位置外的任何文档内容、格式或排版,并且通常也不希望用户修改指定位置内的任何文档格式或排版,以避免用户手动调整样式带来的繁琐和时间消耗,同时考虑到部分用户可能不具备样式设置知识或难以选择合适的样式。为此,我们可以在Word模板中预先为各个文本位置设定样式,确保用户在填写内容时自动应用这些样式。然而,传统方法中,模板中的这些位置往往需要用占位文字标记,用户在填充内容时可能直接删除占位文字,导致预设样式丢失。虽然部分熟练用户懂得先将光标置于占位文字中间编辑内容,再删除多余占位文本以保留样式,但这对用户技能要求较高,操作效率较低,且易误删模板中的重要信息。比如在下面Word模板中,文件标题已经设置字体为华文中宋,字号为小初,如果先删除“文件标题”四个字,在填写真正的文件标题,那么“文件标题”四个字删除后,预先设置文本样式也就没有了,所以可以点击光标到“文件标题”四个字的中间编写“北京某某公司”,然后再删除前面的“文件”俩字和后面的“标题”俩字,那么“北京某某公司”这六个字自然就使用了华文中宋字体和小初字号的样式,如下图所示。但这种操作对用户技能要求较高,效率仍不理想,且容易误删模板中的必要内容。

    针对上述问题,PageOffice数据区域的局部编辑功能提供了一种有效的解决方案。具体步骤如下:

    1. 模板制作阶段:在设计Word模板时,为用户需填写的文本位置预设所需的文本样式,并将这些位置定义为数据区域。

    2. 在线编辑阶段:使用PageOffice的docSubmitForm模式打开文档,同时将WordDocumentWriter对象的EnableAllDataRegionsEditing属性设为true,使得所有数据区域处于可编辑状态。如此一来,当用户在线打开文档时,除了已定义为数据区域的部分,其余文档内容均变为只读状态。

    这样便实现了对Word模板内容及格式排版的有效保护,仅限用户在指定位置进行数据的填写,而且用户在线编辑过程中无需担忧预设样式丢失,他们可以安全地删除占位文本(如有必要,还可利用PageOffice动态清空所有数据区域的文本内容),预设样式将始终保持不变。用户只需专注于在编辑区域内录入内容,无需关心样式设置,大大简化了操作流程,确保了样式一致性,显著提升了工作效率。效果如下图所示,此时文档中除浅黄色背景的可编辑区域外,其余部分均为只读状态。即使删除占位文本如“文件标题”,预设的文本样式(如华文中宋字体、小初字号)依然得以保留,用户只需直接录入新内容即可,从而实现了文本样式的有效锁定。

    综上所述,借助PageOffice数据区域的局部编辑功能,我们成功解决了上述场景中的问题,实现了对Word文档样式精确控制的同时,也极大地简化了用户的编辑过程,确保了文本样式的稳定应用。

    # 后端代码

    以SubmitForm模式在线打开文件时,设置所有数据区域为可编辑状态。

      PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
      
      WordDocumentWriter doc = new WordDocumentWriter();
      doc.setEnableAllDataRegionsEditing(true);
      
      poCtrl.setWriter(doc); // 必须。
      poCtrl.webOpen("D:\\template1.docx", OpenModeType.docSubmitForm, "张佚名");
      
      PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
      
      PageOfficeNetCore.Word.WordDocumentWriter doc = new PageOfficeNetCore.Word.WordDocumentWriter();
      doc.EnableAllDataRegionsEditing = true;
      
      poCtrl.SetWriter(doc); // 必须。
      poCtrl.WebOpen("D:\\template1.docx", PageOfficeNetCore.OpenModeType.docSubmitForm, "tom");
      
      // Make sure to add code blocks to your code group

      # 前端代码

      本示例无前端关键代码。

      上次更新: 2025/07/21, 15:21:36
      PageOffice | Copyright © 2013-2026 卓正软件 京ICP备12010902号-2 京公网安备 11010502019270号
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式