1

署名が必要な数十種類のドキュメントがあります。署名が必要な場所には [[Signature]] タグがあります。そのタグを見つけて、署名の画像に置き換えたいと思います。

私が現在持っているのは 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;
    }

これは技術的には機能しますが、署名が正しく配置されません。

4

2 に答える 2

1

数日前にここで同じ問題を管理する必要がありました:)

答えは、タグをセルに配置することです。その後、セルが立っている場所に画像をセルに収めることができます。

コードサンプルでそれを行う場合は教えてください

于 2017-10-04T09:41:12.013 に答える