PDFRasterizer.NET 4.0 is now available. Supports .NET Core. Renders pixel-perfectly.

How to create a tiling for shapes in PDF

In this code sample we will show you how you can create a rectangle and fill it using a TilingBrush containing dots.

The pattern we will be using is in a 10p*10p area. To keep equal distance between the dots, we place them at (2.5,2.5) and at (7.5,7.5). Next we specify a TilingBrush and add the dots to it and finally we use the tiling brush when drawing the rectangle. The resulting rectangle can be viewed in the following image:

PDFKit Fill Rectangle With Tiling

Document doc = new Document();
Page page = new Page(PageSize.A4);
doc.Pages.Add(page);

ShapeCollection shapes = new ShapeCollection(page.Width, page.Height);

//The tiles will be 10*10 p so we will create in each tiling
//two dots located at (2.5,2.5) and at (7.5,7.5) so the dots are equally spaced.
Pen p = new Pen(System.Drawing.Color.Black, 0.5);
Brush brush = new SolidBrush();
EllipseShape dot1 = new EllipseShape(2.5, 2.5, 0.5, 0.5, p, brush);
EllipseShape dot2 = new EllipseShape(7.5, 7.5, 0.5, 0.5, p, brush);

//create a pattern of 10*10 using the 2 dots.
TilingBrush tiling = new TilingBrush();
tiling.Pattern.Width = 10;
tiling.Pattern.Height = 10;
tiling.Pattern.Add(dot1);
tiling.Pattern.Add(dot2);

//create a rectangleshape using the specified tiling as a filling
shapes.Add(new RectangleShape(250, page.Height - 200, 150, 150, new Pen(System.Drawing.Color.Black), tiling));
page.Overlay.Add(shapes);

//write PDF to output
using (FileStream fs = new FileStream("output.pdf", FileMode.Create, FileAccess.Write))
{
    doc.Write(fs);
}
Dim doc As New Document()
Dim page As New Page(PageSize.A4)
doc.Pages.Add(page)

Dim shapes As New ShapeCollection(page.Width, page.Height)

'The tiles will be 10*10 p so we will create in each tiling
'two dots located at (2.5,2.5) and at (7.5,7.5) so the dots are equally spaced.
Dim p As New Pen(System.Drawing.Color.Black, 0.5)
Dim brush As Brush = New SolidBrush()
Dim dot1 As New EllipseShape(2.5, 2.5, 0.5, 0.5, p, brush)
Dim dot2 As New EllipseShape(7.5, 7.5, 0.5, 0.5, p, brush)

'create a pattern of 10*10 using the 2 dots.
Dim tiling As New TilingBrush()
tiling.Pattern.Width = 10
tiling.Pattern.Height = 10
tiling.Pattern.Add(dot1)
tiling.Pattern.Add(dot2)

'create a rectangleshape using the specified tiling as a filling
shapes.Add(New RectangleShape(250, page.Height - 200, 150, 150, New Pen(System.Drawing.Color.Black), tiling))
page.Overlay.Add(shapes)

'write PDF to output
Using fs As New FileStream("output.pdf", FileMode.Create, FileAccess.Write)
    doc.Write(fs)
End Using
Download PDFKit.NET 4.0
We will send you a download link

  • This field is for validation purposes and should be left unchanged.
Why do we ask your email address?
We send tips that speed up your evaluation
We let you know about bug fixes
You can always unsubscribe with one click
We never share your address with a 3rd party
Thank you for your download

We have sent an email with a download link.