У меня есть несколько десятков различных типов документов, для которых требуется подпись. Если подпись должна идти, есть метка [[Подпись]]. Я хотел бы найти этот тег и заменить его изображением подписи.Замена текстового тега в текстовом документе изображением с использованием Novacode
В настоящее время у меня есть документ Novacode.DocX и добавляется изображение после абзаца, содержащего тег [[Подпись]], но это не работает для моих нужд, поскольку оно помещает подпись под местом подписи , Я хотел бы вставить его прямо там, где вместо тега [[Подпись]]. Это код, который у меня есть в настоящее время:
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;
}
Это работает технически, но неправильно помещает подпись.
Мое окончательное решение, спустя несколько месяцев после этой публикации, должен был использовать шаблонные изображения вместо текстовых меток, которые я мог бы найти и заменить легко, как Word, Shapes. –
хорошо, приятно знать. Ваше окончательное решение кажется более подходящим на самом деле –