• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發C#.NET → 用Aspose.Words for .NET動態生成word文檔中的圖片或水印

    用Aspose.Words for .NET動態生成word文檔中的圖片或水印

    相關軟件相關文章發表評論 來源:本站原創時間:2010/4/12 22:16:40字體大?。?em class="fontsize">A-A+

    作者:admin點擊:1051次評論:0次標簽: word

    1Password for macv5.0.2 官方最新版
    • 類型:Mac應用軟件大?。?i>38.8M語言:中文 評分:10.0
    • 標簽:
    立即下載

    用Aspose.Words for .NET動態生成word文檔中的圖片或水印
    1、概述
      在項目中生成word文檔,這個功能很普遍的,一般生成都是純文字或是列表的比較多,便于客戶打印,而要把圖片也生成到word文檔中的需求有些客戶也是需要的,例如產品圖片。這次我們介紹的是如何利用Aspose.Words for .NET在Word中動態的生成圖片或水印。Aspose.Words for .NET,這個我就不多介紹了,不清楚的朋友可以看看上一篇文章。需求總是變化得快,最近項目中又多了一個這樣需求:系統中生成報價單后,要有一個簽名,這個簽名是根據不同用戶來生成的圖片。好了,下面我就來向大家介紹如何實現這個功能,有興趣的朋友不妨一起討論討論。

    2、正文
    Aspose.Words中,圖片操作主要是靠這個類:Aspose.Words.Drawing.Shape。首先我們來看看如何利用這個類加載圖片:

     

    using Aspose.Words;
    using Aspose.Words.Tables;
    using Aspose.Words.Rendering;
    using Aspose.Words.Drawing;

    Document doc = new Document(tmppath);
    DocumentBuilder builder = new DocumentBuilder(doc);

    Shape shape = new Shape(doc, ShapeType.Image);
    shape.ImageData.SetImage(Server.MapPath("~/template/default.jpg"));
    shape.Width = 70;
    shape.Height = 70;
    shape.HorizontalAlignment = HorizontalAlignment.Right; //靠右對齊
     


    shape.ImageData.SetImage(…)加載圖片的方法一共有四個重載,參數分別為:圖片路徑、字節、流、Image對象。我這里主要采用的是圖片路徑的方式,因為項目用要根據不同用戶生成不同簽名的關系。圖片加載到對象后,我們要做的就是放到文檔中了。下一步,我們要做的就是定位圖片要放在文檔中的什么位置了。

    Aspose.Words在文檔的定位幾乎都是以節點Node為單位的,我們的圖片不太可能跟table一樣一個單元格一個單元格那么固定。因此我這里思路是找個可隨意調整的節點做為“風向標”來定位圖片的位置。我們還是要用到BookMark(域也是可以做到的)。我們先在word模板中定義個bookmark值為”myname”。返回到程序中,下面代碼就是通過書簽來定位圖片的位置了:

     

    builder.MoveToBookmark("myname");
    builder.InsertNode(shape);

    Bookmark myname = doc.Range.Bookmarks["myname"];
    myname.Text = "";
    doc.Range.Bookmarks["myname"].Remove();

    doc.Save("baojiadan.doc", SaveFormat.Doc, SaveType.OpenInWord, Response);
     

    其實到這里我們的動態生成圖就已經完成了。

    我們來看看生成的效果:圖1

    那如何把圖片生成為水印呢?不急,請您跟我往下看。到達到水印的效果,其實主要是對對象Aspose.Words.Drawing.Shape的屬性設置。代碼如下:

     

    shape.WrapType = WrapType.None;
    shape.BehindText = true;
     

    設置完后,我們接下來就要設置一下圖片要放置的位置。這里我們就可以不需要boomark來定位了。直接放置到word模板的正中央,如下:

     

    代碼
    shape.RelativeHorizontalPosition = RelativeHorizontalPosition.Page;
    shape.HorizontalAlignment = HorizontalAlignment.Center;
    shape.RelativeVerticalPosition = RelativeVerticalPosition.Page;
    shape.VerticalAlignment = VerticalAlignment.Center;
     

    在文檔的最后我們再加上一段類似頁腳的東東,代碼如下。

     

    代碼
    builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);

    Border topBorder = builder.CellFormat.Borders[BorderType.Top];
    topBorder.LineStyle = LineStyle.Single;
    topBorder.LineWidth = 1;

    builder.InsertCell();
    builder.CellFormat.Width = 3 * 72;
    builder.Write(string.Format("打印時間: {0}", DateTime.Today.ToLongDateString()));

    builder.InsertCell();
    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;
    builder.Write("版本 1.00");

    builder.EndRow();
    builder.EndTable();

    doc.Save("baojiadan.doc", SaveFormat.Doc, SaveType.OpenInWord, Response);
    好了,我們來看看生成的效果:圖2


    到此,就全部結束了。感謝大家花時間來閱讀,有興趣的朋友一起討論下。

     

    附:Aspose.Words for NET 6.5 破解版下載地址

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>