欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.net使用Aspose.Words進(jìn)行Word替換操作的實(shí)現(xiàn)代碼

 更新時間:2013年05月26日 16:40:49   作者:  
之前在工作中,需要實(shí)現(xiàn)Word打印功能,并且插入圖片。當(dāng)時采取的方式則是使用書簽進(jìn)行操作。首先在word內(nèi)插入書簽,完成后,存為模板。程序加載該模板,找到書簽,并在指定位置寫入文字即可
之前在工作中,需要實(shí)現(xiàn)Word打印功能,并且插入圖片。當(dāng)時采取的方式則是使用書簽進(jìn)行操作。首先在word內(nèi)插入書簽,完成后,存為模板。程序加載該模板,找到書簽,并在指定位置寫入文字即可。

  后期維護(hù)過程中,發(fā)現(xiàn)模板經(jīng)常需要變更,但是書簽在word中不方便查看,用戶在編輯word的時候容易出錯。于是想采取特殊字符串標(biāo)識的方式進(jìn)行替換。此時,圖片的插入就存在問題,光標(biāo)無法直接移動到指定字符串。

資源下載:

  源代碼 http://www.dbjr.com.cn/codes/84240.html

開發(fā)思路:

  查閱 Aspose.Words提供的API,發(fā)現(xiàn)有Range類有該方法:

復(fù)制代碼 代碼如下:

public int Replace(Regex pattern, IReplacingCallback handler, bool isForward);

該方法則是在使用正則表達(dá)式進(jìn)行文檔內(nèi)替換的同時可以執(zhí)行IReplacingCallback接口。

具體實(shí)現(xiàn)代碼如下:

復(fù)制代碼 代碼如下:

/* ==============================================================================
   * 文 件 名:Program
   * 功能描述:
   * Copyright (c) 2013 武漢經(jīng)緯視通科技有限公司
   * 創(chuàng) 建 人: alone
   * 創(chuàng)建時間: 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("學(xué)歷", "本科");
            dic.Add("聯(lián)系方式", "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("已經(jīng)完成書簽操作");
            //使用特殊字符串替換
            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("已經(jīng)完成特殊字符串替換操作");
            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)
        {
            //獲取當(dāng)前節(jié)點(diǎn)
            var node = e.MatchNode;
            //獲取當(dāng)前文檔
            Document doc = node.Document as Document;
            DocumentBuilder builder = new DocumentBuilder(doc);
            //將光標(biāo)移動到指定節(jié)點(diǎn)
            builder.MoveTo(node);
            //插入圖片
            builder.InsertImage(url);
            return ReplaceAction.Replace;
        }
    }
}



模板如圖:



生成文檔如圖:


相關(guān)文章

  • C# MVC 微信支付教程系列之掃碼支付代碼實(shí)例

    C# MVC 微信支付教程系列之掃碼支付代碼實(shí)例

    本篇文章主要介紹了C# MVC 微信支付教程系列之掃碼支付,非常具有實(shí)用價值,需要的朋友可以參考下。
    2016-12-12
  • C#實(shí)現(xiàn)讀取ini配置文件的內(nèi)容

    C#實(shí)現(xiàn)讀取ini配置文件的內(nèi)容

    INI就是擴(kuò)展名為"INI"的文件,其實(shí)他本身是個文本文件,可以用記事本打開,本文主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)讀取ini配置文件內(nèi)容的方法,需要的小伙伴可以了解下
    2023-12-12
  • C#中使用CAS實(shí)現(xiàn)無鎖算法的示例詳解

    C#中使用CAS實(shí)現(xiàn)無鎖算法的示例詳解

    CAS(Compare-and-Swap)是一種多線程并發(fā)編程中常用的原子操作,用于實(shí)現(xiàn)多線程間的同步和互斥訪問。本文將利用CAS實(shí)現(xiàn)無鎖算法,需要的可以參考一下
    2023-04-04
  • C#類型轉(zhuǎn)換之自定義隱式轉(zhuǎn)換和顯式轉(zhuǎn)換

    C#類型轉(zhuǎn)換之自定義隱式轉(zhuǎn)換和顯式轉(zhuǎn)換

    本文主要為大家介紹了一個新的類型轉(zhuǎn)換方法:通過自定義隱式轉(zhuǎn)換,把不一樣的數(shù)據(jù)類型反序列化為一樣的數(shù)據(jù)類型,需要的同學(xué)可以參考一下
    2022-03-03
  • c#擴(kuò)展datatable轉(zhuǎn)json示例

    c#擴(kuò)展datatable轉(zhuǎn)json示例

    這篇文章主要介紹了c#擴(kuò)展datatable轉(zhuǎn)json示例,需要的朋友可以參考下
    2014-05-05
  • C# 如何合并和拆分PDF文件

    C# 如何合并和拆分PDF文件

    這篇文章主要介紹了C# 如何合并和拆分PDF文件,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • 如何使用C# 捕獲進(jìn)程輸出

    如何使用C# 捕獲進(jìn)程輸出

    這篇文章主要介紹了如何使用C# 捕獲進(jìn)程輸出,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-08-08
  • C#?OpenCvSharp?顏色反轉(zhuǎn)實(shí)例詳解

    C#?OpenCvSharp?顏色反轉(zhuǎn)實(shí)例詳解

    OpenCVSharp是OpenCV的.NET?wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的樣例參考,其采用LGPL發(fā)行,對商業(yè)應(yīng)用友好(基本上相當(dāng)于BSD),這篇文章主要介紹了C#?OpenCvSharp?顏色反轉(zhuǎn)的知識,需要的朋友可以參考下
    2024-02-02
  • C#9.0:Init相關(guān)總結(jié)

    C#9.0:Init相關(guān)總結(jié)

    這篇文章主要介紹了C#9.0:Init的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)新版的c#,感興趣的朋友可以了解下
    2021-02-02
  • C#實(shí)現(xiàn)在線更新軟件

    C#實(shí)現(xiàn)在線更新軟件

    winform程序相對web程序而言,功能更強(qiáng)大,編程更方便,但軟件更新卻相當(dāng)麻煩,要到客戶端一臺一臺地升級,面對這個實(shí)際問題,在最近的一個小項(xiàng)目中,本人設(shè)計(jì)了一個通過軟件實(shí)現(xiàn)自動升級技術(shù)方案,彌補(bǔ)了這一缺陷,有較好的參考價值
    2015-05-05

最新評論