From 1bdf8cf14037bf0730a3eba233c42d45ca5c4da5 Mon Sep 17 00:00:00 2001 From: sameerkhan001 Date: Fri, 27 Jun 2025 12:57:04 +0530 Subject: [PATCH] 966446: Added new features sample project. --- .../.NET/Export_checkbox_values.sln | 22 +++++ .../Export_checkbox_values.csproj | 14 ++++ .../Export_checkbox_values/Output/gitkeep.txt | 0 .../.NET/Export_checkbox_values/Program.cs | 50 +++++++++++ .../Font_Subsetting_in_PDFA_conversion.sln | 22 +++++ .../Data/Input.pdf | Bin 0 -> 82774 bytes .../Font_Subsetting_in_PDFA_conversion.csproj | 14 ++++ .../Output/gitkeep.txt | 0 .../Program.cs | 78 ++++++++++++++++++ .../Redaction-fill-color-customization.sln | 22 +++++ .../Output/gitkeep.txt | 0 .../Program.cs | 45 ++++++++++ .../Redaction-fill-color-customization.csproj | 15 ++++ .../.NET/Secure_data _with _AES_GCM.sln | 22 +++++ .../Output/.gitkeep | 0 .../Secure_data _with _AES_GCM/Program.cs | 44 ++++++++++ .../Secure_data _with _AES_GCM.csproj | 15 ++++ 17 files changed, 363 insertions(+) create mode 100644 Forms/Export_checkbox_values/.NET/Export_checkbox_values.sln create mode 100644 Forms/Export_checkbox_values/.NET/Export_checkbox_values/Export_checkbox_values.csproj create mode 100644 Forms/Export_checkbox_values/.NET/Export_checkbox_values/Output/gitkeep.txt create mode 100644 Forms/Export_checkbox_values/.NET/Export_checkbox_values/Program.cs create mode 100644 PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion.sln create mode 100644 PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Data/Input.pdf create mode 100644 PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Font_Subsetting_in_PDFA_conversion.csproj create mode 100644 PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Output/gitkeep.txt create mode 100644 PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Program.cs create mode 100644 Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization.sln create mode 100644 Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Output/gitkeep.txt create mode 100644 Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Program.cs create mode 100644 Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Redaction-fill-color-customization.csproj create mode 100644 Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM.sln create mode 100644 Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Output/.gitkeep create mode 100644 Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Program.cs create mode 100644 Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Secure_data _with _AES_GCM.csproj diff --git a/Forms/Export_checkbox_values/.NET/Export_checkbox_values.sln b/Forms/Export_checkbox_values/.NET/Export_checkbox_values.sln new file mode 100644 index 00000000..c7faa411 --- /dev/null +++ b/Forms/Export_checkbox_values/.NET/Export_checkbox_values.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Export_checkbox_values", "Export_checkbox_values\Export_checkbox_values.csproj", "{7719AB70-75F7-4C57-BC73-0DCEAA9C889A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7719AB70-75F7-4C57-BC73-0DCEAA9C889A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7719AB70-75F7-4C57-BC73-0DCEAA9C889A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7719AB70-75F7-4C57-BC73-0DCEAA9C889A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7719AB70-75F7-4C57-BC73-0DCEAA9C889A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Export_checkbox_values.csproj b/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Export_checkbox_values.csproj new file mode 100644 index 00000000..c9b500b4 --- /dev/null +++ b/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Export_checkbox_values.csproj @@ -0,0 +1,14 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + diff --git a/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Output/gitkeep.txt b/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Output/gitkeep.txt new file mode 100644 index 00000000..e69de29b diff --git a/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Program.cs b/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Program.cs new file mode 100644 index 00000000..c46f8fb1 --- /dev/null +++ b/Forms/Export_checkbox_values/.NET/Export_checkbox_values/Program.cs @@ -0,0 +1,50 @@ +using Syncfusion.Pdf.Interactive; +using Syncfusion.Pdf; +using Syncfusion.Drawing; + +//Create a new PDF document +PdfDocument document = new PdfDocument(); +//Add a new page to the PDF document. +PdfPage page = document.Pages.Add(); + +//Create the form. +PdfForm form = document.Form; + +//Enable the field auto naming. +form.FieldAutoNaming = false; + +//Set default appearance as false. +document.Form.SetDefaultAppearance(false); + +// Create First checkbox field +PdfCheckBoxField checkBoxField1 = new PdfCheckBoxField(page, "CheckBox"); +checkBoxField1.Bounds = new RectangleF(10, 150, 50, 20); +checkBoxField1.BorderColor = Color.Red; +checkBoxField1.BorderWidth = 3; +checkBoxField1.BackColor = Color.Yellow; + +//Set the Export value +checkBoxField1.ExportValue = "Value"; +checkBoxField1.Checked = true; + +// Add to form +form.Fields.Add(checkBoxField1); + +// Create Second checkbox field +PdfCheckBoxField checkBoxField2 = new PdfCheckBoxField(page, "CheckBox"); +checkBoxField2.Bounds = new RectangleF(10, 250, 50, 20); +checkBoxField2.BorderColor = Color.Green; +checkBoxField2.BorderWidth = 2; +checkBoxField2.BackColor = Color.YellowGreen; + +// Add to form +form.Fields.Add(checkBoxField2); + +//Create file stream. +using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Output.pdf"), FileMode.Create, FileAccess.ReadWrite)) +{ + //Save the PDF document to file stream. + document.Save(outputFileStream); +} +//Close the document. +document.Close(true); \ No newline at end of file diff --git a/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion.sln b/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion.sln new file mode 100644 index 00000000..fb91fce7 --- /dev/null +++ b/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Font_Subsetting_in_PDFA_conversion", "Font_Subsetting_in_PDFA_conversion\Font_Subsetting_in_PDFA_conversion.csproj", "{A6B4226C-2B95-4A14-9AF4-465525D9DD48}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A6B4226C-2B95-4A14-9AF4-465525D9DD48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6B4226C-2B95-4A14-9AF4-465525D9DD48}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6B4226C-2B95-4A14-9AF4-465525D9DD48}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6B4226C-2B95-4A14-9AF4-465525D9DD48}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Data/Input.pdf b/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Data/Input.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fe892c8f165bde8ea0fb8c26d9bd5677de6d0abf GIT binary patch literal 82774 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 + + + Exe + net8.0 + enable + enable + + + + + + + diff --git a/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Output/gitkeep.txt b/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Output/gitkeep.txt new file mode 100644 index 00000000..e69de29b diff --git a/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Program.cs b/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Program.cs new file mode 100644 index 00000000..94137a32 --- /dev/null +++ b/PDF Conformance/Font_Subsetting_in_PDFA_conversion/.NET/Font_Subsetting_in_PDFA_conversion/Program.cs @@ -0,0 +1,78 @@ +using Syncfusion.Pdf.Parsing; +using Syncfusion.Pdf; +using System.Reflection.Metadata; +using Syncfusion.Drawing; +using Syncfusion.Pdf.Graphics; +using SkiaSharp; + +//Get stream from an existing PDF document. +FileStream docStream = new FileStream(Path.GetFullPath(@"Data/Input.pdf"), FileMode.Open, FileAccess.Read); +PdfLoadedDocument loadedDocument = new PdfLoadedDocument(docStream); + +//Sample level font event handling +loadedDocument.SubstituteFont += LoadedDocument_SubstituteFont; + +//Create conformance options +PdfConformanceOptions options = new PdfConformanceOptions(); +//Set the conformance level +options.ConformanceLevel = PdfConformanceLevel.Pdf_A1B; + +//Embed fonts as subsets +options.SubsetFonts = true; + +// Convert to PDF/A conformance +loadedDocument.ConvertToPDFA(options); + +//Create file stream. +using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Output.pdf"), FileMode.Create, FileAccess.ReadWrite)) +{ + //Save the PDF document to file stream. + loadedDocument.Save(outputFileStream); +} + +//Close the document. +loadedDocument.Close(true); +docStream.Close(); + +static void LoadedDocument_SubstituteFont(object sender, PdfFontEventArgs args) +{ + //get the font name + string fontName = args.FontName.Split(',')[0]; + + //get the font style + PdfFontStyle fontStyle = args.FontStyle; + SKFontStyle sKFontStyle = SKFontStyle.Normal; + + if (fontStyle != PdfFontStyle.Regular) + { + if (fontStyle == PdfFontStyle.Bold) + { + sKFontStyle = SKFontStyle.Bold; + } + else if (fontStyle == PdfFontStyle.Italic) + { + sKFontStyle = SKFontStyle.Italic; + } + else if (fontStyle == (PdfFontStyle.Italic | PdfFontStyle.Bold)) + { + sKFontStyle = SKFontStyle.BoldItalic; + } + } + + SKTypeface typeface = SKTypeface.FromFamilyName(fontName, sKFontStyle); + SKStreamAsset typeFaceStream = typeface.OpenStream(); + MemoryStream memoryStream = null; + if (typeFaceStream != null && typeFaceStream.Length > 0) + { + //Create the fontData from the type face stream. + byte[] fontData = new byte[typeFaceStream.Length]; + typeFaceStream.Read(fontData, typeFaceStream.Length); + typeFaceStream.Dispose(); + + //Create the new memory stream from the font data. + memoryStream = new MemoryStream(fontData); + } + + //set the font stream to the event args. + args.FontStream = memoryStream; +} diff --git a/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization.sln b/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization.sln new file mode 100644 index 00000000..51c4e61c --- /dev/null +++ b/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Redaction-fill-color-customization", "Redaction-fill-color-customization\Redaction-fill-color-customization.csproj", "{965B76D5-EB6B-401A-9715-2DAFCAF89573}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {965B76D5-EB6B-401A-9715-2DAFCAF89573}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {965B76D5-EB6B-401A-9715-2DAFCAF89573}.Debug|Any CPU.Build.0 = Debug|Any CPU + {965B76D5-EB6B-401A-9715-2DAFCAF89573}.Release|Any CPU.ActiveCfg = Release|Any CPU + {965B76D5-EB6B-401A-9715-2DAFCAF89573}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Output/gitkeep.txt b/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Output/gitkeep.txt new file mode 100644 index 00000000..e69de29b diff --git a/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Program.cs b/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Program.cs new file mode 100644 index 00000000..a8515d76 --- /dev/null +++ b/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Program.cs @@ -0,0 +1,45 @@ +using Syncfusion.Pdf.Graphics; +using Syncfusion.Pdf.Interactive; +using Syncfusion.Pdf; +using Syncfusion.Drawing; + +//Create a new PDF document. +PdfDocument document = new PdfDocument(); +//Add a page to the document. +PdfPage page = document.Pages.Add(); + +//Create a new Redaction annotation +PdfRedactionAnnotation annot = new PdfRedactionAnnotation(); +//Assign the Bounds Value +annot.Bounds = new Rectangle(100, 120, 100, 100); +//Assign the InnerColor +annot.InnerColor = Color.Black; +//Assign the BorderColor +annot.BorderColor = Color.Yellow; + +//Assign the AppearanceFillColor +annot.AppearanceFillColor = Color.BlueViolet; + +//Assign tbe TextColor +annot.TextColor = Color.Blue; +//Assign the font +annot.Font = new PdfStandardFont(PdfFontFamily.Helvetica, 10); +//Assign the OverlayText +annot.OverlayText = "REDACTION"; +//Assign the TextAlignment +annot.TextAlignment = PdfTextAlignment.Right; +//Assign the RepeatText +annot.RepeatText = true; +annot.SetAppearance(true); + +//Add the annotation to the page +page.Annotations.Add(annot); + +//Create file stream. +using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Output.pdf"), FileMode.Create, FileAccess.ReadWrite)) +{ + //Save the PDF document to file stream. + document.Save(outputFileStream); +} +//Close the document. +document.Close(true); \ No newline at end of file diff --git a/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Redaction-fill-color-customization.csproj b/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Redaction-fill-color-customization.csproj new file mode 100644 index 00000000..04782eb9 --- /dev/null +++ b/Redaction/Redaction-fill-color-customization/.NET/Redaction-fill-color-customization/Redaction-fill-color-customization.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + Redaction_fill_color_customization + enable + enable + + + + + + + diff --git a/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM.sln b/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM.sln new file mode 100644 index 00000000..e5f62e6a --- /dev/null +++ b/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Secure_data _with _AES_GCM", "Secure_data _with _AES_GCM\Secure_data _with _AES_GCM.csproj", "{2B3C8C92-BF50-49A6-AF36-45F094E7CA62}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2B3C8C92-BF50-49A6-AF36-45F094E7CA62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B3C8C92-BF50-49A6-AF36-45F094E7CA62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B3C8C92-BF50-49A6-AF36-45F094E7CA62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B3C8C92-BF50-49A6-AF36-45F094E7CA62}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Output/.gitkeep b/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Output/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Program.cs b/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Program.cs new file mode 100644 index 00000000..83ed0bc8 --- /dev/null +++ b/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Program.cs @@ -0,0 +1,44 @@ +using Syncfusion.Pdf.Graphics; +using Syncfusion.Pdf.Security; +using Syncfusion.Pdf; +using Syncfusion.Drawing; + +//Create a new PDF document. +PdfDocument document = new PdfDocument(); + +//Set the document version as 2.0 +document.FileStructure.Version = PdfVersion.Version2_0; + +//Add a page to the document. +PdfPage page = document.Pages.Add(); + +//Create PDF graphics for the page. +PdfGraphics graphics = page.Graphics; + +//Set the font. +PdfStandardFont font = new PdfStandardFont(PdfFontFamily.TimesRoman, 15f, PdfFontStyle.Bold); + +//Set the brush. +PdfBrush brush = PdfBrushes.Black; + +//Document security. +PdfSecurity security = document.Security; + +//Specifies key size and encryption algorithm. +security.KeySize = PdfEncryptionKeySize.Key256Bit; +security.Algorithm = PdfEncryptionAlgorithm.AESGCM; +security.OwnerPassword = "ownerPassword"; +security.UserPassword = "userPassword"; + +//Draw the text. +graphics.DrawString("Encrypted document with AES-GCM 256bit", font, brush, new PointF(0, 40)); + +//Create file stream. +using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Output.pdf"), FileMode.Create, FileAccess.ReadWrite)) +{ + //Save the PDF document to file stream. + document.Save(outputFileStream); +} + +//Close the documents. +document.Close(true); \ No newline at end of file diff --git a/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Secure_data _with _AES_GCM.csproj b/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Secure_data _with _AES_GCM.csproj new file mode 100644 index 00000000..439ea111 --- /dev/null +++ b/Security/Secure_data _with _AES_GCM/.NET/Secure_data _with _AES_GCM/Secure_data _with _AES_GCM.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + Secure_data__with__AES_GCM + enable + enable + + + + + + +