.net 使用 Aspose.Words 进行 Word替换操作
2013-11-12 11:27
471 查看
之前在工作中,需要实现Word打印功能,并且插入图片。当时采取的方式则是使用书签进行操作。首先在word内插入书签,完成后,存为模板。程序加载该模板,找到书签,并在指定位置写入文字即可。
后期维护过程中,发现模板经常需要变更,但是书签在word中不方便查看,用户在编辑word的时候容易出错。于是想采取特殊字符串标识的方式进行替换。此时,图片的插入就存在问题,光标无法直接移动到指定字符串。
查阅 Aspose.Words提供的API,发现有Range类有该方法:
该方法则是在使用正则表达式进行文档内替换的同时可以执行IReplacingCallback接口。
具体实现代码如下:
后期维护过程中,发现模板经常需要变更,但是书签在word中不方便查看,用户在编辑word的时候容易出错。于是想采取特殊字符串标识的方式进行替换。此时,图片的插入就存在问题,光标无法直接移动到指定字符串。
查阅 Aspose.Words提供的API,发现有Range类有该方法:
public int Replace(Regex pattern, IReplacingCallback handler, bool isForward);
该方法则是在使用正则表达式进行文档内替换的同时可以执行IReplacingCallback接口。
具体实现代码如下:
/* ============================================================================== * 文 件 名:Program * 功能描述: * Copyright (c) 2013 武汉经纬视通科技有限公司 * 创 建 人: alone * 创建时间: 2013/4/2 11:16:19 * 修 改 人: * 修改时间: * 修改描述: * 版 本: v1.0.0.0 * ==============================================================================*/ using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using Aspose.Words; namespace WordDemo { class Program { static void Main(string[] args) { var dic = new Dictionary<string, string>(); dic.Add("姓名", "杨幂"); dic.Add("学历", "本科"); dic.Add("联系方式", "02759597666"); dic.Add("邮箱", "304885433@qq.com"); dic.Add("头像", ".//1.jpg"); //使用书签操作 Document doc = new Document(".//1.doc"); DocumentBuilder builder = new DocumentBuilder(doc); foreach (var key in dic.Keys) { builder.MoveToBookmark(key); if (key != "头像") { builder.Write(dic[key]); } else { builder.InsertImage(dic[key]); } } doc.Save("书签操作.doc");//也可以保存为1.doc 兼容03-07 Console.WriteLine("已经完成书签操作"); //使用特殊字符串替换 doc = new Document(".//2.doc"); foreach (var key in dic.Keys) { if (key != "头像") { var repStr = string.Format("&{0}&", key); doc.Range.Replace(repStr, dic[key], false, false); } else { Regex reg = new Regex("&头像&"); doc.Range.Replace(reg, new ReplaceAndInsertImage(".//1.jpg"), false); } } doc.Save("字符串替换操作.doc");//也可以保存为1.doc 兼容03-07 Console.WriteLine("已经完成特殊字符串替换操作"); Console.ReadKey(); } } public class ReplaceAndInsertImage : IReplacingCallback { /// <summary> /// 需要插入的图片路径 /// </summary> public string url { get; set; } public ReplaceAndInsertImage(string url) { this.url = url; } public ReplaceAction Replacing(ReplacingArgs e) { //获取当前节点 var node = e.MatchNode; //获取当前文档 Document doc = node.Document as Document; DocumentBuilder builder = new DocumentBuilder(doc); //将光标移动到指定节点 builder.MoveTo(node); //插入图片 builder.InsertImage(url); return ReplaceAction.Replace; } } }
相关文章推荐
- .net 使用 Aspose.Words 进行 Word替换操作
- .net使用Aspose.Words进行Word替换操作的实现代码
- .net 使用 Aspose.Words 进行 Word替换操作
- .net 使用 Aspose.Words 进行 Word替换操作
- .net 使用 Aspose.Words 进行 Word替换操作
- .Net 使用 Aspose.Words 进行 Word替换操作
- .net 使用 Aspose.Words 进行 Word替换操作
- .net使用Aspose.Words进行Word替换操作的实现代码
- .net 使用 Aspose.Words 进行 Word替换操作
- 正文内容 Aspose.Words进行Word替换
- 在WORD中使用正则表达式进行替换操作提高编辑效率
- Aspose.Words使用教程大全(操作Word大全帖子)
- 推荐.NET使用Aspose.Words动态生成word文档数据表格(附Aspose.Words for NET 6.5 破解版下载)
- Aspose.words 替换字符 操作
- 利用Aspose.Words处理Word文档之间的转换和内容操作
- c#调用Aspose.Word组件操作word 插入文字/图片/表格 书签替换套打
- XDocReport 的简单使用 操作word 替换变量,动态图片,指定操作指令(程序)扩展(转自:http://www.cnblogs.com/fish-in-sky/p/4973237.html)
- 使用.Net开源项目NPOI操作Excel、Word、ppt
- Word中使用正则表达式进行查找和替换
- Asp.net使用Aspose.Words 组件生成Word