Mastering PDF Page Manipulation in C# and .NET

Managing PDF documents programmatically can be a powerful tool for developers, especially when precise control over the content and structure of the PDF is required. This article will explore how to achieve precise PDF page control using C# and .NET, leveraging the robust features of SautinSoft's PDF .Net library.

Recognition of page parameters in PDF.Net can be useful for various tasks such as:

  • Change the page orientation. You can change the page orientation from portrait to landscape and vice versa.
  • Setting the page borders. This allows you to control the visible area of the page, which can be useful for printing or displaying.
  • Adding page numbers. Knowing the page parameters helps you position the page numbers accurately.
  • Reorganizing the pages. You can change the order of the pages in the document.
  • Extract text and images. Understanding the page settings helps you accurately extract text and images from specific areas of the page.

Step-by-step guide:

  1. Add SautinSoft.PDF from NuGet.
  2. Create a new PDF document.
  3. Get a page tree root node.
  4. Create a left page tree node.
  5. Create a first page.
  6. Output parameters in the console.

Output result:

Complete code

using System;
using System.IO;
using SautinSoft;
using SautinSoft.Pdf;
using SautinSoft.Pdf.Content;

namespace Sample
{
    class Sample
    {
            /// <summary>
            /// Page parameters.
            /// </summary>
            /// <remarks>
            /// Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/page-parameters.php
            /// </remarks>
        static void Main(string[] args)
        {
            // Before starting this example, please get a free 100-day trial key:
            // https://sautinsoft.com/start-for-free/

            // Apply the key here:
            // PdfDocument.SetLicense("...");

            using (var document = new PdfDocument())
            {
                using (var formattedText = new PdfFormattedText())
                {
                    // Get a page tree root node.
                    var rootNode = document.Pages;
                  
                    // Create a left page tree node.
                    var childNode = rootNode.Kids.AddPages();
                    
                    // Create a first page.
                    var page = childNode.Kids.AddPage();
                    Console.WriteLine("Page rotation: {0}", page.Rotate);
                    Console.WriteLine("Page size: width = {0}, height = {1}", page.Size.Width, page.Size.Height);
                    Console.WriteLine("Page cropBox rectangle: ({0}, {1}, {2}, {3})", page.CropBox.Left, page.CropBox.Bottom, page.CropBox.Right, page.CropBox.Top);
                    Console.WriteLine("Page mediaBox rectangle: ({0}, {1}, {2}, {3})", page.MediaBox.Left, page.MediaBox.Bottom, page.MediaBox.Right, page.MediaBox.Top);
                }
            }
        }
    }
}

Download

Option Infer On

Imports System
Imports System.IO
Imports SautinSoft
Imports SautinSoft.Pdf
Imports SautinSoft.Pdf.Content

Namespace Sample
	Friend Class Sample
			''' <summary>
			''' Page parameters.
			''' </summary>
			''' <remarks>
			''' Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/page-parameters.php
			''' </remarks>
		Shared Sub Main(ByVal args() As String)
			' Before starting this example, please get a free license:
			' https://sautinsoft.com/start-for-free/

			' Apply the key here:
			' PdfDocument.SetLicense("...");

			Using document = New PdfDocument()
				Using formattedText = New PdfFormattedText()
					' Get a page tree root node.
					Dim rootNode = document.Pages


					' Create a left page tree node.
					Dim childNode = rootNode.Kids.AddPages()



					' Create a first page.
					Dim page = childNode.Kids.AddPage()
					formattedText.Append("FIRST PAGE")
					page.Content.DrawText(formattedText, New PdfPoint(0, 0))
				End Using

				document.Save("Add Page.pdf")
			End Using

			System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo("Add Page.pdf") With {.UseShellExecute = True})
		End Sub
	End Class
End Namespace

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:



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.