How to set page numbers in PDF using C# and .NET


Creating professional PDF documents is an important task for developers involved in automated reporting, documentation, or content generation. One of the key elements of such documents is page numbering, which ensures readability and structure of information. In this article, we'll discuss how to automatically set page numbers in PDFs in C# and .NET using the component PDF Metamorphosis .NET from SautinSoft SDK. Using code to automate this process significantly speeds up workflows and improves the quality of the resulting documents.

Page numbering serves a number of important functions:

  • Improved navigation: users can quickly find the section they need.
  • Professional appearance: documents with numbers appear more structured.
  • Report automation: manually setting numbers in generated systems is costly and error-prone.
  • Scalability: automatic numbering is possible for large numbers of documents.

What tasks is it useful for?

  • Generating professional presentations, coursework, and theses.
  • Creating project reports.
  • Processing and delivery of automated business reports.
  • Documentation of user instructions.
  • Generation of books and brochures with automatic numbering.

Input file:

set page numbers input

Output result:

set page numbers output

Complete code

using System;
using System.IO;
using System.Collections;

namespace Sample
{
	
    class Test
	{
		
		static void Main(string[] args)
		{
			// Before starting, we recommend to get a free key:
            // https://sautinsoft.com/start-for-free/
            
            // Apply the key here:
			// SautinSoft.PdfMetamorphosis.SetLicense("...");

            // This sample shows how to specify page numbers
			SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();

            //Page 1 of N, position: 30 mm from the left of the page
            p.PageSettings.Numbering.Text = "Page {page} of {numpages}";
            p.PageSettings.Numbering.PosX.Mm = 30;
            p.PageSettings.Numbering.PosY.Mm = 10;
            p.PageSettings.Numbering.FontFace = "Courier New";
            p.PageSettings.Numbering.FontSize = 22;

			if (p != null)
			{
				string rtfPath = @"..\..\..\example.rtf";
                string pdfPath = @"..\..\..\example.pdf";

				int i = p.RtfToPdfConvertFile(rtfPath,pdfPath);

				if (i !=0)
				{
					System.Console.WriteLine("An error occurred during converting RTF to PDF!");
				}
				else
				{
					System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pdfPath) { UseShellExecute = true });
				}
			}
		}
	}
}

Download


Module sample

    Sub Main()

        ' This sample shows how to specify page numbers
			' Before starting, we recommend to get a free key:
            ' https://sautinsoft.com/start-for-free/
            
            ' Apply the key here:
			' SautinSoft.PdfMetamorphosis.SetLicense("...");


        Dim p As New SautinSoft.PdfMetamorphosis()

        'Page 1 of N, position: 30 mm from the left of the page
        p.PageSettings.Numbering.Text = "Page {page} of {numpages}"
        p.PageSettings.Numbering.PosX.Mm = 30
        p.PageSettings.Numbering.PosY.Mm = 10
        p.PageSettings.Numbering.FontFace = "Courier New"
        p.PageSettings.Numbering.FontSize = 22

        ' This is page number N
        'p.PageSettings.Numbering.Text = "This is page number {page}"

        If p IsNot Nothing Then
            Dim rtfPath As String = "..\..\..\example.rtf"
            Dim pdfPath As String = "..\..\..\test.pdf"

            Dim i As Integer = p.RtfToPdfConvertFile(rtfPath, pdfPath)

            If i <> 0 Then
                System.Console.WriteLine("An error occurred during converting RTF to PDF!")
            Else
                System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pdfPath) With {.UseShellExecute = True})
            End If
        End If
    End Sub
End Module

Download


If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below:


Captcha

Questions and suggestions from you are always welcome!

We are developing .Net components since 2002. We know PDF, DOCX, RTF, HTML, XLSX and Images formats. If you need any assistance with creating, modifying or converting documents in various formats, we can help you. We will write any code example for you absolutely free.