2017-01-04 83 views
1

我有幾十種不同類型的文檔需要簽名。簽名應該去的地方有一個[[Signature]]標籤。我想找到該標籤並將其替換爲簽名圖像。使用Novacode替換Word文檔中的文本標籤與圖像

我目前使用的是Novacode.DocX文檔,並在包含[[Signature]]標籤的段落之後追加圖片,但這並不符合我的需求,因爲它將簽名放置在簽名標籤的位置下方。我想直接在[[Signature]]標記處插入它。這是我目前的代碼:

 public static MemoryStream ToSignedPDFStream(this Novacode.DocX document, string signatureImgBase64, string signatureBiometric) 
    { 
     var bytes = System.Convert.FromBase64String(signatureImgBase64); 

     System.Drawing.Image image; 
     using (MemoryStream ms = new MemoryStream(bytes)) 
     { 
      image = System.Drawing.Image.FromStream(ms); 
     } 

     using (MemoryStream imgStream = new MemoryStream()) 
     { 
      image.Save(imgStream, System.Drawing.Imaging.ImageFormat.Bmp); 
      imgStream.Seek(0, SeekOrigin.Begin); 
      var docxImage = document.AddImage(imgStream); 


      var addresses = document.FindAll("[[Signature]]"); 
      var paragraphs = document.Paragraphs.Where(x => x.Text.Contains("[[Signature]]")); 
      foreach (var paragraph in paragraphs) 
      { 
       paragraph.ReplaceText("[[Signature]]", ""); 
       paragraph.AppendPicture(docxImage.CreatePicture(50, 150)); 

      } 

      var memoryStream = new MemoryStream(); 
      document.SaveAs(memoryStream); 

     } 

     var pdfStream = document.ToPDFStream(); 

     var biometricFile = File.WriteAllText(); 

     return pdfStream; 
    } 

從技術上講,這起作用,但將簽名錯誤地放置。

回答

1

我前幾天在這裏管理相同的問題:)

答案是你的標籤放到一個單元格,然後可將圖像融入細胞,正是你的細胞裏。

告訴我,如果你想有一個代碼示例這樣做

+0

我的最終解決方案,發佈這個數月之後,是使用佔位符圖片代替文字標籤,我可以再找到且很容易替換的文字形狀。 –

+0

好的,很高興知道。實際上你的最終解決方案聽起來更合適 –