diff --git a/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word.sln b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word.sln new file mode 100644 index 000000000..1a472329a --- /dev/null +++ b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35527.113 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Add-signature-in-PDF-from-Word", "Add-signature-in-PDF-from-Word\Add-signature-in-PDF-from-Word.csproj", "{A854FD4A-9DB1-440B-92DB-0E7C33CABDA3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A854FD4A-9DB1-440B-92DB-0E7C33CABDA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A854FD4A-9DB1-440B-92DB-0E7C33CABDA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A854FD4A-9DB1-440B-92DB-0E7C33CABDA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A854FD4A-9DB1-440B-92DB-0E7C33CABDA3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Add-signature-in-PDF-from-Word.csproj b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Add-signature-in-PDF-from-Word.csproj new file mode 100644 index 000000000..dd9486a47 --- /dev/null +++ b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Add-signature-in-PDF-from-Word.csproj @@ -0,0 +1,24 @@ + + + + Exe + net8.0 + Add_signature_in_PDF_from_Word + enable + enable + + + + + + + + + Always + + + Always + + + + diff --git a/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Data/Template.docx b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Data/Template.docx new file mode 100644 index 000000000..5bcbf47b7 Binary files /dev/null and b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Data/Template.docx differ diff --git a/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Output/.gitkeep b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Output/.gitkeep new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Output/.gitkeep @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Program.cs b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Program.cs new file mode 100644 index 000000000..c3db86b1b --- /dev/null +++ b/Word-to-PDF-Conversion/Add-signature-in-PDF-from-Word/.NET/Add-signature-in-PDF-from-Word/Program.cs @@ -0,0 +1,65 @@ +using Syncfusion.DocIO.DLS; +using Syncfusion.DocIO; +using Syncfusion.DocIORenderer; +using Syncfusion.Pdf; +using Syncfusion.Pdf.Interactive; +using Syncfusion.Pdf.Parsing; +using Syncfusion.Drawing; + +using (FileStream docStream = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.Read)) +{ + using (WordDocument document = new WordDocument(docStream, FormatType.Docx)) + { + using (DocIORenderer renderer = new DocIORenderer()) + { + //Sets true to preserve the Word document form field as editable PDF form field in PDF document. + renderer.Settings.PreserveFormFields = true; + + using (PdfDocument pdfDocument = renderer.ConvertToPDF(document)) + { + using (MemoryStream stream = new MemoryStream()) + { + pdfDocument.Save(stream); + stream.Position = 0; + //Add signature field in PDF. + AddSignature(stream); + } + } + } + } +} + +/// +/// Adds signature field in PDF +/// +/// +static void AddSignature(MemoryStream stream) +{ + //Load the PDF document. + PdfLoadedDocument loadedDocument = new PdfLoadedDocument(stream); + //Get the loaded form. + PdfLoadedForm loadedForm = loadedDocument.Form; + for (int i = 0; i < loadedForm.Fields.Count; i++) + { + if (loadedForm.Fields[i] is PdfLoadedTextBoxField) + { + //Get the loaded text box field and fill it. + PdfLoadedTextBoxField loadedTextBoxField = loadedForm.Fields[i] as PdfLoadedTextBoxField; + //Get bounds from an existing textbox field. + RectangleF bounds = loadedTextBoxField.Bounds; + //Get page. + PdfPageBase loadedPage = loadedTextBoxField.Page; + //Create PDF Signature field. + PdfSignatureField signatureField = new PdfSignatureField(loadedPage, loadedTextBoxField.Text.Trim()); + //Set properties to the signature field. + signatureField.Bounds = bounds; + //Add the form field to the document. + loadedDocument.Form.Fields.Add(signatureField); + } + } + //Save the document. + using (FileStream outputStream1 = new FileStream(Path.GetFullPath(@"Output/Result.pdf"), FileMode.OpenOrCreate, FileAccess.ReadWrite)) + { + loadedDocument.Save(outputStream1); + } +} \ No newline at end of file