using System.Drawing;
using System.Security.Cryptography.X509Certificates;
using Vintasoft.Imaging.Pdf;
using Vintasoft.Imaging.Pdf.Drawing;
using Vintasoft.Imaging.Pdf.Tree.Fonts;
/// <summary>
/// Adds visible digital signature with custom appearance to a PDF page.
/// </summary>
public class PdfPageDigitalSignatureHelper_CustomAppearance
{
public static void Run()
{
// get the X509 certificate from .pfx-file
using (X509Certificate2 certificate = new X509Certificate2("TestCertificate.pfx", "test"))
{
// create a helper that alows to add digital signature to a PDF document
MyDigitalSignatureHelper digitalSignatureHelper =
new MyDigitalSignatureHelper(certificate, new RectangleF(20, 20, 250, 100));
// set the background color for signature
digitalSignatureHelper.SignatureBackgoundColor = Color.Green;
// set the reason for signing
digitalSignatureHelper.SigningReason = "Approve document";
// set text for signature appearance
digitalSignatureHelper.SignatureText =
string.Format("Digitally signed by\n{0}", digitalSignatureHelper.SignerName);
// add digital signature to the first PDF page, sign PDF document and save PDF document to the output file
digitalSignatureHelper.SignDocument("TestDocumentToSign.pdf", "TestDocumentToSign-signed.pdf", 0);
}
}
public class MyDigitalSignatureHelper : PdfPageDigitalSignatureHelper
{
public MyDigitalSignatureHelper(X509Certificate2 certificate, RectangleF signatureRect)
: base(certificate, signatureRect)
{
}
/// <summary>
/// Draws the text on signature appearance.
/// </summary>
/// <param name="graphics">The PDF graphics.</param>
/// <param name="rect">The rectangle.</param>
/// <param name="font">The text font.</param>
/// <param name="text">The text do draw.</param>
protected override void DrawSignatureAppearanceText(PdfGraphics graphics, RectangleF rect, PdfFont font, string text)
{
// create border pen
PdfPen borderPen = new PdfPen(Color.Orange, 10);
// draw border
graphics.DrawRectangle(borderPen, rect);
// padding
rect.Inflate(-borderPen.Width * 2, -borderPen.Width * 2);
// measure font size
float fontSize = graphics.MeasureFontSize(text, font, rect.Width, rect.Height);
// draw the signature text
graphics.DrawString(text, font, fontSize, new PdfBrush(SignatureTextColor), rect, SignatureTextAlignment, false);
}
}
}
Forum 'Code samples'
Code samples for VintaSoft PDF .NET Plug-in. Here you can request a code sample.
Board index < VintaSoft Imaging < VintaSoft PDF .NET Plug-in Discussions < Code samples
