Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Annotations/Stamp_blur_Solution/App.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Application x:Class="Stamp_blur_Solution.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Stamp_blur_Solution"
StartupUri="MainWindow.xaml">
<Application.Resources>

</Application.Resources>
</Application>
14 changes: 14 additions & 0 deletions Annotations/Stamp_blur_Solution/App.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Configuration;
using System.Data;
using System.Windows;

namespace Stamp_blur_Solution
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
}

}
10 changes: 10 additions & 0 deletions Annotations/Stamp_blur_Solution/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -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)
)]
Binary file added Annotations/Stamp_blur_Solution/Data/Input.pdf
Binary file not shown.
17 changes: 17 additions & 0 deletions Annotations/Stamp_blur_Solution/MainWindow.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<Window x:Class="Stamp_blur_Solution.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Stamp_blur_Solution" xmlns:PdfViewer="clr-namespace:Syncfusion.Windows.PdfViewer;assembly=Syncfusion.PdfViewer.WPF"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Content="Button" HorizontalAlignment="Left" Margin="10" Grid.Row="0" VerticalAlignment="Top" Click="Button_Click"/>
<PdfViewer:PdfViewerControl x:Name="PDFViewer" Grid.Row ="1"/>
</Grid>
</Window>
94 changes: 94 additions & 0 deletions Annotations/Stamp_blur_Solution/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
using Syncfusion.Pdf.Graphics;
using Syncfusion.Windows.PdfViewer;
using System.Drawing;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;

namespace Stamp_blur_Solution
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
PDFViewer.Load("../../../Data/Input.pdf");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var unitConvertor = new PdfUnitConvertor();

// Stamp properties
int SX = (int)unitConvertor.ConvertToPixels(125, PdfGraphicsUnit.Point);
int SY = (int)unitConvertor.ConvertToPixels(108, PdfGraphicsUnit.Point);
string StampNo = "01";
int StampSize = 100;

int StampWidth = (int)unitConvertor.ConvertToPixels(20, PdfGraphicsUnit.Point);
int StampHeight = (int)unitConvertor.ConvertToPixels(20, PdfGraphicsUnit.Point);

// 1. Create a high-resolution Bitmap for the custom stamp
using (var customStampBitmap = new Bitmap(StampSize, StampSize))
{
using (Graphics g = Graphics.FromImage(customStampBitmap))
{
g.Clear(Color.Transparent);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;

// Draw ellipse
using (var pen = new Pen(Color.Red, 3))
{
g.DrawEllipse(pen, 3, 3, StampSize - 6, StampSize - 6);
}

// Draw stamp number text (centered)
using (var font = new Font("Helvetica", 28))
{
SizeF textSize = g.MeasureString(StampNo, font);
var textPoint = new System.Drawing.PointF(
(StampSize - textSize.Width) / 2f,
(StampSize - textSize.Height) / 2f);
g.DrawString(StampNo, font, Brushes.Red, textPoint);
}
}

// 2. Convert Bitmap to BitmapImage for WPF PdfViewer
BitmapImage bitmapImage;
using (var ms = new MemoryStream())
{
customStampBitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
ms.Position = 0;

bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = ms;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();
}

// 3. Create WPF Image control
var stampImage = new System.Windows.Controls.Image
{
Source = bitmapImage
};

// 4. Create PdfStampAnnotation
var stampAnnotation = new PdfStampAnnotation(stampImage);

// 5. Define position and size for the stamp in PDF
var position = new System.Windows.Point(SX, SY);
var stampSizeObj = new System.Drawing.Size(StampWidth, StampHeight);

// 6. Add the custom image stamp to the PDF viewer
// NOTE: Ensure 'pdfViewer' is your PdfViewerControl instance defined in XAML.
PDFViewer.AddStamp(stampAnnotation, 1, position, stampSizeObj);
}
}

}
}
12 changes: 12 additions & 0 deletions Annotations/Stamp_blur_Solution/Stamp_blur_Solution.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>WinExe</OutputType>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Syncfusion.PdfViewer.WPF" Version="*" />
<PackageReference Include="System.Drawing.Common" Version="10.0.1" />
</ItemGroup>
<Import Project="targets\MultiTargeting.targets" />
</Project>
3 changes: 3 additions & 0 deletions Annotations/Stamp_blur_Solution/Stamp_blur_Solution.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<Solution>
<Project Path="Stamp_blur_Solution.csproj" />
</Solution>
10 changes: 10 additions & 0 deletions Annotations/Stamp_blur_Solution/targets/MultiTargeting.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<Project>
<PropertyGroup>
<TargetFrameworks>net462;net8.0-windows;net9.0-windows;net10.0-windows</TargetFrameworks>
<UseWPF>true</UseWPF>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<EnableDefaultItems>True</EnableDefaultItems>
<EnableDefaultEmbeddedResourceItems>True</EnableDefaultEmbeddedResourceItems>
</PropertyGroup>
</Project>