How to Delete PDF Pages in C# (Step-by-Step Guide)

Why Delete PDF Pages Programmatically?

In automated document processing, PDF files may contain unnecessary pages due to export errors, duplicate content, or format conversion issues. Manual deletion is time‑consuming and can lead to file corruption when handling large batches. A programmatic approach using a .NET library allows developers to integrate page deletion into server‑side or desktop applications.

This article demonstrates how to delete single or multiple pages from a PDF file using a third-party free library.

Step 1: Install the Free .NET Library

Install the library via NuGet Package Manager Console:

Install-Package FreeSpire.PDF

Alternatively, search for FreeSpire.PDF in the Manage NuGet Packages interface and install the latest version.

Step 2: Load the PDF Document

Use the PdfDocument class to load an existing PDF file:

using Spire.Pdf;

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("input.pdf");

The LoadFromFile method accepts a file path. Ensure the file exists and is not corrupted.

Step 3: Delete a Single Page by Index

Pages in the PdfDocument.Pages collection are zero‑indexed. To delete a specific page, call RemoveAt with the target index.

Example: delete page 3 (1‑based) → index 2 (zero‑based):

pdf.Pages.RemoveAt(2);  // Removes the 3rd page

Step 4: Delete Multiple Pages

When deleting multiple pages, indices shift after each removal. To avoid errors, delete pages in descending order (from highest index to lowest).

The following example deletes page 1 and page 3 using 1‑based page numbers:

int[] pagesToDelete = new int[] { 1, 3 }; // Pages 1 and 3 (1-based)

Array.Sort(pagesToDelete);
Array.Reverse(pagesToDelete);

foreach (int pageNum in pagesToDelete)
{
    if (pageNum >= 1 && pageNum <= pdf.Pages.Count)
    {
        pdf.Pages.RemoveAt(pageNum - 1); // Convert to zero-based
    }
}

Note: Always validate page numbers against pdf.Pages.Count before deletion.

Step 5: Save the Modified PDF

After deletion, save the document using SaveToFile:

pdf.SaveToFile("RemovePages.pdf");
pdf.Close();

To overwrite the original file, use the same path.

Complete C# Example: Delete PDF Pages

using Spire.Pdf;
using System;

class Program
{
    static void Main()
    {
        try
        {
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("sample.pdf");

            // Delete the second page
            pdf.Pages.RemoveAt(1);

            // Delete the first and third pages
            int[] pagesToDelete = { 1, 3 };
            Array.Sort(pagesToDelete);
            Array.Reverse(pagesToDelete);
            foreach (int pageNum in pagesToDelete)
            {
                if (pageNum <= pdf.Pages.Count)
                    pdf.Pages.RemoveAt(pageNum - 1);
            }

            pdf.SaveToFile("cleaned.pdf");
            pdf.Close();

            Console.WriteLine("PDF pages deleted successfully.");
        }
        catch (ArgumentException ex)
        {
            Console.WriteLine($"Invalid page number: {ex.Message}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

Handling Edge Cases

ScenarioHandling Approach
Page number out of rangeValidate before deletion; skip or throw ArgumentException.
Empty PDFpdf.Pages.Count == 0 – no deletion possible.
Corrupted fileLoadFromFile throws an exception; wrap in try‑catch.
Deleting all pagesAfter deletion, save an empty PDF (library permits this).

Working with Page Collections

The PdfDocument.Pages property returns a PdfPageCollection object. Other useful methods include:

  • pdf.Pages.Count – total number of pages.

  • pdf.Pages.Insert(int index) – insert a page.

  • pdf.Pages.Add() – append a page.

For conditional deletion (e.g., remove pages containing specific text), combine with PdfTextFinder:

using Spire.Pdf.Texts;

PdfTextFinder finder = new PdfTextFinder(pdf.Pages[0]);
finder.Find("Confidential"); // Returns list of text locations

Iterate through pages and delete those matching criteria.

Summary

This article provides a simple and efficient solution to delete pages from a PDF file in C# . The core workflow is:

Load → Select → Delete → Save

This approach eliminates manual editing and integrates seamlessly into any C# application – no Adobe Acrobat needed.