【发布时间】: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