- Add a link to PDF with an external destination
- Add a link with an internal destination to PDF
- Add a note to PDF
- Add barcodes to PDF
- Add bookmarks to PDF
- Add footer to PDF
- Add simple html text to PDF
- Add hyperlink to PDF
- Add Long Term Validation (LTV) data to an existing signature
- Add multiline text to a PDF document
- Add a rubber stamp annotation with a custom icon
- Add single-line text to PDF
- Add Stamp to PDF
- Add tags to existing PDF
- Add text field to PDF
- Add a Diagonal Watermark to PDF in C# - TallComponents - PDF Library
- pdfkit5 - detailed changes to the API - Tall Components
- Append two or more existing PDF files
- Change the color inside a PDF
- Change the formatting of a numeric field
- Change page orientation PDF
- Clip PDF page content in C#
- .NET Core console app on MacOS
- Convert PDF to plain text
- Convert SVG to PDF
- Create a text annotation in PDF with rich text
- Create formfields in PDF documents
- Create a new digitally signed PDF document
- Create rectangles with rounded corners
- Create tagged PDF
- Create text with decorations
- How to create a tiling for shapes in PDF
- Crop content on a PDF page
- Determine the content bounding box
- Determine if a PDF only contains images
- Digitally sign a PDF form in C# or VB.NET
- Disable submit button after submitting
- How to downscale all images in a PDF
- Download and convert image to PDF
- How to downscale all images in a PDF
- Vector graphics in PDF
- Fill XFA form and export XDP data
- Fill and save dynamic XFA form
- Merge XDP data with dynamic XFA form
- Dynamic XFA
- How to embed files in a PDF document
- Embed TrueType font in PDF
- EMF to PDF as vector image
- Export FDF from PDF form
- Extract embedded files from PDF
- Extract glyph boxes from PDF
- Extract glyphs and sort by reading order
- Extract graphics from PDF
- Extract images from PDF
- Fill in a template PDF document
- Fill PDF form
- Fit image to PDF page
- Flatten Markup Annotation
- Flatten PDF form
- How to generate and export certificates
- How do I extract page destinations from bookmarks?
- Highlight fields in PDF
- How to add autosized text to PDF
- How to sign and verify updates to a PDF document
- Import FDF into PDF
- Licensing and .NET Standard
- Merge PDF files in C# .NET
- How to mirror PDF pages and other shapes
- Layout text with MultilineTextShape
- pdfkit5 and .NET Core
- pdfkit5 .NET Standard API
- Read and write meta data from PDF
- Read PDF tags
- How to reduce PDF file size
- Reduce PDF size
- Remove graphics from PDF
- Remove PDF security settings
- Replace field with image
- Resize PDF pages
- Rotate a PDF page
- How to scale content of PDF
- Search text in PDF
- PDF Viewer Preferences
- Create a custom signature handler to sign and verify PDF documents
- Split PDF pages in C# and VB.NET
- Tagged PDF
- TIFF to PDF C#
- Translate PDF page content
- Use multiple licenses
- Use TrueType font collections
- Write Document to HttpResponse
- Use pdfkit5 with a Xamarin.Forms app
- pdfkit5 and Xamarin
Create a new digitally signed PDF document
Instead of taking an existing PDF document that already has a signature field and signing it, this code sample creates a new PDF document, adds a signature fields, and then digitally signs it.
Create PDF with signature field
The following code creates a new document and adds a page with a signature field.
Document document = new Document();
Page page = new Page(PageSize.A4);
document.Pages.Add(page);
//create a new SignatureField
SignatureField signField = new SignatureField("SignatureField");
//create widget, which specifies the location and size.
SignatureWidget widget = new SignatureWidget(45, page.Height - 200, 150, 40);
signField.Widgets.Add(widget);
page.Widgets.Add(widget);
document.Fields.Add(signField);
Dim document As New Document()
Dim page As New Page(PageSize.A4)
document.Pages.Add(page)
'create a new SignatureField
Dim signField As New SignatureField("SignatureField")
'create widget, which specifies the location and size.
Dim widget As New SignatureWidget(45, page.Height - 200, 150, 40)
signField.Widgets.Add(widget)
page.Widgets.Add(widget)
document.Fields.Add(signField)
Here is the result:
Sign PDF using signature handler
The following code signs the new signature field using a signature handler and a certificate store.
//open certificate store.
Pkcs12Store ks = null;
using (FileStream file = new FileStream("ChrisSharp.pfx", FileMode.Open, FileAccess.Read))
{
ks = new Pkcs12Store(file, "Sample");
}
//let the Create factory decide which type should be used.
SignatureHandler handler = StandardSignatureHandler.Create(ks);
signField.SignatureHandler = handler;
//the document is signed. The following code will
//set some optional info.
signField.ContactInfo = "+31 (0)77 4748677";
signField.Location = "The Netherlands";
signField.Reason = "I fully agree!";
//optional code to set image;
SignatureAppearance signedAppearance = new SignatureAppearance();
signedAppearance.Style = SignatureAppearanceStyle.ImageAndText;
using (System.Drawing.Bitmap bmp = new System.Drawing.Bitmap("logo_pdfkit.gif"))
{
signedAppearance.Bitmap = bmp;
}
widget.SignedAppearance = signedAppearance;
widget.BackgroundColor = System.Drawing.Color.LightPink;
//don't forget: when writing documents which are signed, you also need access to reading!
using (FileStream fs = new FileStream(@"signature_document.pdf", FileMode.Create, FileAccess.ReadWrite))
{
document.Write(fs);
}
'open certificate store.
Dim ks As Pkcs12Store = Nothing
Using file As New FileStream("ChrisSharp.pfx", FileMode.Open, FileAccess.Read)
ks = New Pkcs12Store(file, "Sample")
End Using
'let the Create factory decide which type should be used.
Dim handler As SignatureHandler = StandardSignatureHandler.Create(ks)
signField.SignatureHandler = handler
'the document is signed. The following code will
'set some optional info.
signField.ContactInfo = "+31 (0)77 4748677"
signField.Location = "The Netherlands"
signField.Reason = "I fully agree!"
'optional code to set image;
Dim signedAppearance As New SignatureAppearance()
signedAppearance.Style = SignatureAppearanceStyle.ImageAndText
Using bmp As New System.Drawing.Bitmap("logo_pdfkit.gif")
signedAppearance.Bitmap = bmp
End Using
widget.SignedAppearance = signedAppearance
widget.BackgroundColor = System.Drawing.Color.LightPink
'don't forget: when writing documents which are signed, you also need access to reading!
Using fs As New FileStream("signature_document.pdf", FileMode.Create, FileAccess.ReadWrite)
document.Write(fs)
End Using
Here is the result: