diff --git a/Annotations/Custom_stamp/App.xaml b/Annotations/Custom_stamp/App.xaml
new file mode 100644
index 0000000..12c8307
--- /dev/null
+++ b/Annotations/Custom_stamp/App.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/Annotations/Custom_stamp/App.xaml.cs b/Annotations/Custom_stamp/App.xaml.cs
new file mode 100644
index 0000000..4c4b785
--- /dev/null
+++ b/Annotations/Custom_stamp/App.xaml.cs
@@ -0,0 +1,14 @@
+using System.Configuration;
+using System.Data;
+using System.Windows;
+
+namespace Custom_Stamp
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+
+}
diff --git a/Annotations/Custom_stamp/AssemblyInfo.cs b/Annotations/Custom_stamp/AssemblyInfo.cs
new file mode 100644
index 0000000..b0ec827
--- /dev/null
+++ b/Annotations/Custom_stamp/AssemblyInfo.cs
@@ -0,0 +1,10 @@
+using System.Windows;
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
diff --git a/Annotations/Custom_stamp/Custom_Stamp.slnx b/Annotations/Custom_stamp/Custom_Stamp.slnx
new file mode 100644
index 0000000..07e0568
--- /dev/null
+++ b/Annotations/Custom_stamp/Custom_Stamp.slnx
@@ -0,0 +1,3 @@
+
+
+
diff --git a/Annotations/Custom_stamp/Custom_stamp.csproj b/Annotations/Custom_stamp/Custom_stamp.csproj
new file mode 100644
index 0000000..15e353e
--- /dev/null
+++ b/Annotations/Custom_stamp/Custom_stamp.csproj
@@ -0,0 +1,12 @@
+
+
+
+ WinExe
+
+
+
+
+
+
+
+
diff --git a/Annotations/Custom_stamp/Data/Approved.png b/Annotations/Custom_stamp/Data/Approved.png
new file mode 100644
index 0000000..79d6257
Binary files /dev/null and b/Annotations/Custom_stamp/Data/Approved.png differ
diff --git a/Annotations/Custom_stamp/Data/Input.pdf b/Annotations/Custom_stamp/Data/Input.pdf
new file mode 100644
index 0000000..45e5cb8
Binary files /dev/null and b/Annotations/Custom_stamp/Data/Input.pdf differ
diff --git a/Annotations/Custom_stamp/MainWindow.xaml b/Annotations/Custom_stamp/MainWindow.xaml
new file mode 100644
index 0000000..1bbfbec
--- /dev/null
+++ b/Annotations/Custom_stamp/MainWindow.xaml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Annotations/Custom_stamp/MainWindow.xaml.cs b/Annotations/Custom_stamp/MainWindow.xaml.cs
new file mode 100644
index 0000000..9c9ce5b
--- /dev/null
+++ b/Annotations/Custom_stamp/MainWindow.xaml.cs
@@ -0,0 +1,71 @@
+using Syncfusion.Windows.PdfViewer;
+using System;
+using System.Drawing;
+using System.IO;
+using System.Windows;
+using System.Windows.Media.Imaging;
+
+namespace Custom_Stamp
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ pdfViewer.Load("../../../Data/Input.pdf");
+ }
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ string authorName = "John Doe";
+ string dateTimeText = DateTime.Now.ToString("dd-MMM-yyyy HH:mm");
+ string metaText = $"{authorName} | {dateTimeText}";
+
+ // Load original stamp image
+ Bitmap originalStamp = new Bitmap("../../../Data/Approved.png");
+
+ using (Graphics g = Graphics.FromImage(originalStamp))
+ {
+ g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
+ g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
+
+ using (Font font = new Font("Arial", 9))
+ {
+ SizeF textSize = g.MeasureString(metaText, font);
+
+ // Position text at bottom-right inside the image
+ float x = originalStamp.Width - textSize.Width - 10; // 10px padding from right
+ float y = originalStamp.Height - textSize.Height - 5; // 5px padding from bottom
+
+ g.DrawString(metaText, font, System.Drawing.Brushes.Black, new PointF(x, y));
+ }
+ }
+
+ // Convert to BitmapImage for WPF PdfViewer
+ BitmapImage bitmapImage;
+ using (MemoryStream ms = new MemoryStream())
+ {
+ originalStamp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
+ ms.Position = 0;
+
+ bitmapImage = new BitmapImage();
+ bitmapImage.BeginInit();
+ bitmapImage.StreamSource = ms;
+ bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
+ bitmapImage.EndInit();
+ }
+
+ // Create PdfStampAnnotation
+ System.Windows.Controls.Image stampImage = new System.Windows.Controls.Image() { Source = bitmapImage };
+ PdfStampAnnotation stampAnnotation = new PdfStampAnnotation(stampImage);
+
+ // Add stamp to PDF
+ System.Windows.Point position = new System.Windows.Point(125, 108);
+ System.Drawing.Size stampSize = new System.Drawing.Size(originalStamp.Width, originalStamp.Height);
+ pdfViewer.AddStamp(stampAnnotation, 1, position, stampSize);
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/Annotations/Custom_stamp/targets/MultiTargeting.targets b/Annotations/Custom_stamp/targets/MultiTargeting.targets
new file mode 100644
index 0000000..3928b04
--- /dev/null
+++ b/Annotations/Custom_stamp/targets/MultiTargeting.targets
@@ -0,0 +1,10 @@
+
+
+ net462;net8.0-windows;net9.0-windows;net10.0-windows
+ true
+ False
+ True
+ True
+ True
+
+
\ No newline at end of file