Skip to content

Commit 5e91eb7

Browse files
Merge pull request #243 from SyncfusionExamples/1006681
1006681: How to Sign All Pages Using a Group Signature
2 parents ccebced + 6f40fc0 commit 5e91eb7

File tree

7 files changed

+57
-0
lines changed

7 files changed

+57
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<Solution>
2+
<Project Path="Group-signature-for-all-pages/Group-signature-for-all-pages.csproj" />
3+
</Solution>
Binary file not shown.
Binary file not shown.
13.7 KB
Loading
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net8.0</TargetFramework>
6+
<RootNamespace>Group_signature_for_all_pages</RootNamespace>
7+
<ImplicitUsings>enable</ImplicitUsings>
8+
<Nullable>enable</Nullable>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<PackageReference Include="Syncfusion.Pdf.Net.Core" Version="*" />
13+
</ItemGroup>
14+
15+
</Project>

Digital Signature/Group-signature-for-all-pages/.NET/Group-signature-for-all-pages/Output/gitkeep.txt

Whitespace-only changes.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using Syncfusion.Drawing;
2+
using Syncfusion.Pdf;
3+
using Syncfusion.Pdf.Graphics;
4+
using Syncfusion.Pdf.Parsing;
5+
using Syncfusion.Pdf.Security;
6+
7+
// Load the PDF document
8+
using (PdfLoadedDocument document = new PdfLoadedDocument(Path.GetFullPath(@"Data/Input.pdf")))
9+
{
10+
// Ensure the form (AcroForm) exists before adding signature fields
11+
if (document.Form == null)
12+
document.CreateForm();
13+
// Turn off automatic field naming if you want full control over field names
14+
document.Form.FieldAutoNaming = false;
15+
// Create certificate from PFX file
16+
PdfCertificate pdfCert = new PdfCertificate(Path.GetFullPath(@"Data/PDF.pfx"), "syncfusion");
17+
// Load the signature image once
18+
using FileStream imageStream = new FileStream(Path.GetFullPath(@"Data/Signature.png"), FileMode.Open, FileAccess.Read);
19+
PdfBitmap signatureImage = new PdfBitmap(imageStream);
20+
// Iterate pages and add a signature field to each page
21+
for (int i = 0; i < document.Pages.Count; i++)
22+
{
23+
// Get current page
24+
PdfPageBase page = document.Pages[i];
25+
// Create a signature field on the page using the certificate
26+
PdfSignature signature = new PdfSignature(document, page, pdfCert, "Signature");
27+
// Position & size of the signature field
28+
signature.Bounds = new RectangleF(new PointF(350, 200), new SizeF(100, 60));
29+
// Draw the signature image into the signature appearance once
30+
signature.Appearance.Normal.Graphics.DrawImage(
31+
signatureImage,
32+
0, 0,
33+
signature.Bounds.Width,
34+
signature.Bounds.Height
35+
);
36+
}
37+
// Save the PDF document
38+
document.Save(Path.GetFullPath(@"Output/Output.pdf"));
39+
}

0 commit comments

Comments
 (0)