轉(zhuǎn)帖|使用教程|編輯:龔雪|2014-11-10 09:47:06.000|閱讀 2272 次
概述:.net使用Aspose.Words進(jìn)行Word替換操作的實(shí)現(xiàn)代碼。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
慧都年終巨獻(xiàn),Aspose系列產(chǎn)品黃金版+白金版享<8折>優(yōu)惠! 截止日期2014/11/30
之前在工作中,需要實(shí)現(xiàn)Word打印功能,并且插入圖片。當(dāng)時(shí)采取的方式則是使用書簽進(jìn)行操作。首先在word內(nèi)插入書簽,完成后,存為模板。程序加載該模板,找到書簽,并在指定位置寫入文字即可。
后期維護(hù)過程中,發(fā)現(xiàn)模板經(jīng)常需要變更,但是書簽在word中不方便查看,用戶在編輯word的時(shí)候容易出錯(cuò)。于是想采取特殊字符串標(biāo)識的方式進(jìn)行替換。此時(shí),圖片的插入就存在問題,光標(biāo)無法直接移動(dòng)到指定字符串。
開發(fā)思路:
查閱 Aspose.Words提供的API,發(fā)現(xiàn)有Range類有該方法:
代碼如下:
該方法則是在使用正則表達(dá)式進(jìn)行文檔內(nèi)替換的同時(shí)可以執(zhí)行IReplacingCallback接口。
具體實(shí)現(xiàn)代碼如下:
public class ReplaceAndInsertImage : IReplacingCallback
{
/// <summary>
/// 需要插入的圖片路徑
/// </summary>
public string url { get; set; }
public ReplaceAndInsertImage(string url)
{
this.url = url;
}
public ReplaceAction Replacing(ReplacingArgs e)
{
//獲取當(dāng)前節(jié)點(diǎn)
var node = e.MatchNode;
//獲取當(dāng)前文檔
Document doc = node.Document as Document;
DocumentBuilder builder = new DocumentBuilder(doc);
//將光標(biāo)移動(dòng)到指定節(jié)點(diǎn)
builder.MoveTo(node);
//插入圖片
builder.InsertImage(url);
return ReplaceAction.Replace;
}
}
}
慧都年終巨獻(xiàn),Aspose系列產(chǎn)品黃金版+白金版享<8折>優(yōu)惠! 截止日期2014/11/30
模板如圖:
生成文檔如圖:
原文來自:腳本之家
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)