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;
}
从技术上讲,这起作用,但将签名错误地放置。
我的最终解决方案,发布这个数月之后,是使用占位符图片代替文字标签,我可以再找到且很容易替换的文字形状。 –
好的,很高兴知道。实际上你的最终解决方案听起来更合适 –