Add a rubber stamp annotation with a custom icon

For some applications it is necessary to add a customized annotation to a PDF document. With PDFKit and PDFControls this is possible. The PDF standard includes a “rubber stamp annotation”. It displays text or graphics intended to look as if they were stamped on the page with a rubber stamp. For this rubber stamp there are a few standard appearances, but it is also possible to change the appearance by applying an icon. This article shows how to create a customized rubber stamp annotation.

Rubber Stamp With Custom Icon In Pdf

Step 1: Create an icon

First we create a shape collection, then create and image shape from a .png file and add this to the shape collection

//create a shape collection
var icon_shapes = new ShapeCollection(15, 15);

//create an image shape and add it to the shape collection
icon_shapes.Add(new ImageShape("../../CustomStamp.png"));

Step 2: Create a rubber stamp

We create a stamp and use the created shape collection to set the icon of the stamp

//create a stamp
var stamp = new Stamp(null, 100, 600, 40, 40)
{
    Text = "This page is empty."
};

//change the icon of the stamp to the created shape collection
stamp.SetIcon(icon_shapes);

//create a popup and assign it to the stamp
stamp.Popup = new Popup(140, 500, 200, 100) { Open = true };

Step 3: Create a pdf document with the stamp

We create a PDF document and add the stamp to it.

//create new document
var document = new Document();

//create a page and add to the document
var page = new Page(PageSize.Letter);
document.Pages.Add(page);

... // Here comes the code to create the stamp

//add the stamp to the page
page.Markups.Add(stamp);

//write the PDF document to the disk
const string fileName = @"..\..\CustomAnnotation.pdf";
using (var file = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
    document.Write(file);
}

// open the PDF document
Process.Start(fileName);

The sample shows that the icon of a stamp can be changed. In this sample a shape collection with an image shape is used. When setting the icon for the stamp, it expects a shape collection. As a consequence, you are not restricted to creating an icon from a .png file. You can freely create shapes. Create the shapes you want and present them in a shape collection. The stamp can be resized by setting the width and heigth.