当前位置: 首页 > news >正文

GcWord V8.2 新版本:TOA/TA字段增强、模板标签管理与PDF导出优化

关于 GcWord

GcWord(Document Solutions for Word)是葡萄城(GrapeCity)推出的一款功能强大的文档处理开发组件,隶属于 GrapeCity Documents 系列。它旨在为开发人员提供高效、灵活的 Word 文档编程解决方案,支持在 .NET 平台下(包括 .NET Framework、.NET Core、.NET 5+ 等)无缝创建、加载、编辑、转换和保存 Word 文档(主要为 DOCX 格式),且无需依赖 Microsoft Word 应用程序。

GcWord 具备丰富的 API 体系,可全面操控 Word 文档的各类元素,如文本、段落、表格、图片、图表、样式、字段、模板等,满足企业级应用中复杂的文档自动化需求,广泛应用于报表生成、合同处理、文档批量导出、法律文书管理等场景。同时,它还支持将 Word 文档转换为 PDF、HTML、图片等多种格式,进一步拓展了文档的应用范围,帮助开发团队快速构建高性能的文档相关业务系统。

GcWord V8.2 新版本特性

1. TOA 与 TA 字段功能更新

GcWord 现新增用于操作 TOA(权威文献表)和 TA(权威文献表条目)字段的 API,大幅简化法律类文档或参考资料密集型文档的编程式构建与管理流程。

新推出的 ToaFieldOptions 类支持开发人员读取和修改 TOA 字段选项,ToaPageNumberOptions 类则专门用于控制页码的显示样式。此外,新增的 CitationCategoryMap 类可精准检索引文类别名称,为文献分类提供更可靠的支持。

针对 TA 字段,全新的 TaFieldOptions 类允许对 TA 字段选项进行读写操作,这些选项可定义单个 TOA 条目的文本内容、页码及页码范围。通过上述功能增强,开发人员可全面掌控 Word 文档中 TOA 和 TA 字段的生成、更新与自定义操作。

以下代码展示了如何通过编程方式更新 TOA 和 TA 字段:

// 创建权威文献表条目选项
TaFieldOptions ta = new TaFieldOptions(doc);
// 为权威文献表条目设置类别
ta.Category = 1;
ta.LongCitation.Text = "Anderson v. United States, 612 F.2d 1112 (9th Cir.1980)";
// 按照指定选项创建不可见的权威文献表条目字段
p.AddComplexField(ta);
// 向同一段落中添加可见文本
p.AddRun(" Anderson v. United States");
// 对其他条目执行相同操作
ta.LongCitation.Text = "Duff v. Wilson, 69 Pa. 316 (Pa. 1871)";
p.AddComplexField(ta);
p.AddRun(", Duff v. Wilson");
ta.LongCitation.Text = "Sandstrom v. Larsen, 59 Haw. 491, 583 P.2d 971 (1978)";
p.AddComplexField(ta);
p.AddRun(" and Sandstrom v. Larsen.");
// 为权威文献表字段创建段落
p = doc.Body.AddParagraph();
// 为权威文献表字段创建选项
ToaFieldOptions toa = new ToaFieldOptions(doc);
// 设置要包含的权威文献表条目的类别
toa.EntriesCategory = 1;
// 按照指定选项创建权威文献表字段
ComplexField field = p.AddComplexField(toa);
// 构建权威文献表
field.Update();

借助新的 TOA 和 TA 字段 API,可轻松在 Word 文档中生成并自定义法律参考文献。

2. 新增功能:获取文档中定义的模板标签列表

GcWord 现提供全新 API,支持快速检索数据模板(Data Template)中定义的所有模板标签(如 {{CustomerName}} 这类占位符)。通过调用 DataTemplate.GetTemplateTagInfos() 方法,开发人员可获取 TemplateTagInfo 对象列表,该列表包含标签名称、类型、范围及文本等关键信息。

这一功能可帮助开发人员高效分析或存储占位符信息,广泛适用于报表生成、数据验证、基于角色的权限管理等业务场景,进一步提升文档自动化处理的灵活性。

以下代码展示了 DataTemplate 类中新的 GetTemplateTagInfos() 方法:

// DataTemplate 类中的新方法:
public class DataTemplate
{ // 获取当前文档中的模板列表List<templatetaginfo> GetTemplateTagInfos();
}

通过快速检索模板标签,可实现与后端系统或数据工作流的无缝集成。

3. 功能优化:访问导出 PDF 中的模板标签及位置

在将 GcWord 文档导出为 PDF 时,现支持标记模板标签位置,为文档的辅助功能实现、数据验证及审阅操作提供便利。通过设置 WordLayoutSettings.MarkTemplateTagAreas = true,GcWord 会在布局处理过程中精准记录模板标签的位置信息。

随后,开发人员可通过 PdfOutputSettings.MarkupTemplateTags 委托添加自定义标记(如 PDF 注释),在 PDF 每一页中突出显示模板标签,提升文档审阅效率与可读性。

以下代码展示了如何实现上述场景:

// 导出 DOCX 文档时使用该 API的步骤:
// - 在 WordLayoutSettings 中将 MarkTemplateTagAreas 设置为 true,并且
// - 在 PdfOutputSettings 中指定自定义的 MarkupTemplateTags 方法。
public class MarkTagsInPDF
{public GcWordDocument CreateDocx(){var doc = new GcWordDocument();doc.Load(Path.Combine("Resources", "WordDocs", "House_Rental_Template.docx"));return doc;}public static WordLayoutSettings GetWordLayoutSettings(){return new WordLayoutSettings(){MarkTemplateTagAreas = true};}// 自定义 PDF 输出设置包含 MarkupTemplateTags 方法// 该方法会在原始 DOCX 文档中存在的报表/数据模板标签上添加标记注释public static PdfOutputSettings GetPdfOutputSettings(){var settings = new PdfOutputSettings(){MarkupTemplateTags = (page, tags) =&gt;{foreach (var tag in tags){foreach (var rect in tag.Areas){var hilight = new TextMarkupAnnotation{Area = [rect],Color = Color.YellowGreen,MarkupType = TextMarkupType.Highlight,Opacity = 0.4f,RichText = $"标签信息:<br>名称: <b>{tag?.Info?.Name}</b><br>文本: <b>{tag?.Info?.Text}</b>",};page.Annotations.Add(hilight);}}}};return settings;}
}

通过在导出的 PDF 中轻松识别并突出显示模板标签,可更好地支持辅助功能应用与审阅工作流。

http://www.xdnf.cn/news/1454239.html

相关文章:

  • 政务级数据安全!小陌GEO引擎的私有化部署实践指南
  • 机器学习 - 使用 ID3 算法从原理到实际举例理解决策树
  • 【开题答辩全过程】以宠物应急救援平台为例,包含答辩的问题和答案
  • 视频增强AI哪个效果好?实战对比帮你找到最适合的工具
  • 【Python基础】 14 Rust 与 Python 标识符命名规则与风格对比笔记
  • 中值滤波、方框滤波、高斯滤波、均值滤波、膨胀、腐蚀、开运算、闭运算
  • 2025年数学建模国赛C题超详细解题思路
  • [免费]基于Python的Django+Vue图书借阅推荐系统【论文+源码+SQL脚本】
  • 设计模式最佳实践 - 模板模式 + 责任链模式
  • PyTorch 学习率调度器(LR Scheduler)
  • HTB Sau
  • MySQL数据库和SQL语言
  • 具身智能多模态感知与场景理解:多模态3D场景理解
  • Linux基础知识(一)
  • AGX Orin平台RTC驱动导致reboot系统卡住问题调试
  • 微信小程序-day4
  • 微信小程序日历事件添加实现
  • IO_HW_9_4
  • 基于飞算JavaAI的学生成绩综合统计分析系统
  • Android Zygote 源码剖析
  • webpack scope hositing 和tree shaking
  • 谷歌修复安卓120个漏洞,含两个正遭利用的零日漏洞
  • 一文吃透 C#中异步编程Task
  • 鸿蒙权限崩溃:网络文件访问全攻略
  • CentOS系统如何查看当前内存容量
  • android View详解—View的刷新流程源码解析
  • 惊!printf 不往屏幕输?都是 fd 在搞鬼!爆肝拆解 Linux 文件描述符 + 重定向底层,学会直接在终端横着走
  • STM32-UART-中断
  • Qt QJsonObject
  • 数据库集成:使用 SQLite 与 Electron