手机
当前位置:查字典教程网 >编程开发 >C#教程 >.net使用Aspose.Words进行Word替换操作的实现代码
.net使用Aspose.Words进行Word替换操作的实现代码
摘要:之前在工作中,需要实现Word打印功能,并且插入图片。当时采取的方式则是使用书签进行操作。首先在word内插入书签,完成后,存为模板。程序加...

之前在工作中,需要实现Word打印功能,并且插入图片。当时采取的方式则是使用书签进行操作。首先在word内插入书签,完成后,存为模板。程序加载该模板,找到书签,并在指定位置写入文字即可。

后期维护过程中,发现模板经常需要变更,但是书签在word中不方便查看,用户在编辑word的时候容易出错。于是想采取特殊字符串标识的方式进行替换。此时,图片的插入就存在问题,光标无法直接移动到指定字符串。

资源下载:

源代码 http://www.jb51.net/codes/84240.html

开发思路:

查阅 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替换操作的实现代码1

生成文档如图:

.net使用Aspose.Words进行Word替换操作的实现代码2

【.net使用Aspose.Words进行Word替换操作的实现代码】相关文章:

C# 利用Aspose.Words.dll将 Word 转成PDF

C#使用DllImport调用非托管的代码的方法

C#对XML文件的各种操作实现方法

c# 调用.bat文件的实现代码

将数组中指定数量的元素移动数组后面的实现代码

基于使用BeginInvoke,EndInvoke异步调用委托的实现代码

c# n个数排序实现代码

C# 注册表 操作实现代码

C#操作图片读取和存储SQLserver实现代码

C#连接db2数据库的实现方法

精品推荐
分类导航