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;
}
從技術上講,這起作用,但將簽名錯誤地放置。
我的最終解決方案,發佈這個數月之後,是使用佔位符圖片代替文字標籤,我可以再找到且很容易替換的文字形狀。 –
好的,很高興知道。實際上你的最終解決方案聽起來更合適 –