【问题标题】:Vertical Digital Signature Appearance C# ITextSharp [duplicate]垂直数字签名外观 C# ITextSharp [重复]
【发布时间】:2020-02-18 04:34:09
【问题描述】:

我有对 pdf 文件进行数字签名的代码,默认情况下水平显示签名,但需要将签名放置在垂直位置。

我尝试将矩形旋转到 90 或 270,但没有成功

工作代码(打印签名水平位置)

        X509Certificate2 signatureCert = new X509Certificate2(cert);
        if (!cert.HasPrivateKey)
        {
            MessageBox.Show("Certificate does not have Private Key");
        }
        else
        {
            RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey;
            if (rsa == null)
            {
                if (rsa.CspKeyContainerInfo.HardwareDevice) //smartcard
                {
                    if ((rsa.CspKeyContainerInfo.KeyContainerName == CertificateDetails.KeyContainerName) && (rsa.CspKeyContainerInfo.ProviderName == CertificateDetails.ProviderName))
                    {
                        // MessageBox.Show("Certificate Match");
                    }
                    else
                    {
                        MessageBox.Show("Incorrect Certificate Provider Details.");
                    }
                }
            }
        }

        X509CertificateParser cp = new X509CertificateParser();
        X509Certificate[] chain = new X509Certificate[] { cp.ReadCertificate(cert.RawData) };
        IExternalSignature externalSignature = new X509Certificate2Signature(cert, "SHA-1");

        PdfReader pdfReader = new PdfReader(source);
        PdfStamper pdfStamper = PdfStamper.CreateSignature(pdfReader, new
        FileStream(dest, FileMode.Create, FileAccess.Write), '\0', null, true);

        PdfSignatureAppearance signatureAppearance = pdfStamper.SignatureAppearance;
        signatureAppearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.DESCRIPTION;
        signatureAppearance.Reason = reason;
        signatureAppearance.Location = location;

        signatureAppearance.SetVisibleSignature(new iTextSharp.text.Rectangle(50, 250, 250, 30), 1, signatureName);

        MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CMS);
        pdfStamper.Close();

期望输出在垂直位置显示签名。 提前致谢。

【问题讨论】:

    标签: c# itext signature digital


    【解决方案1】:

    前面已经给出了答案。

    https://stackoverflow.com/a/28042136/12237843

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      相关资源
      最近更新 更多