Jak dodać numery stron do plików PDF za pomocą języka C#

Jak dodać numery stron do pliku PDF za pomocą języka C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF umożliwia dodawanie numerów stron do plików PDF w języku C# przy użyciu ciągów znaków zastępczych {page} i {total-pages} w nagłówkach/stopkach, z opcjami zastosowania ich do określonych stron lub sekcji w celu ułatwienia nawigacji po dokumencie.

Numery stron to kolejne numery przypisane do każdej strony w dokumencie PDF. Są to niezbędne elementy nawigacji, pomagające czytelnikom w lokalizowaniu konkretnych stron i śledzeniu ich pozycji. Numery stron ułatwiają również cytowanie i odwoływanie się do treści. Dzięki IronPDF dodawanie numerów stron do plików PDF jest bardzo proste.

Szybki start: Łatwe dodawanie numerów stron do plików PDF

Dodaj numery stron do dokumentów PDF za pomocą IronPDF. Za pomocą minimalnego kodu C# można wstawiać dynamiczne numery stron do nagłówków lub stopek, dostosowywać ich położenie oraz określać, na których stronach mają się pojawiać. Niezależnie od tego, czy chodzi o nowe, czy istniejące pliki PDF, IronPDF zapewnia elastyczne rozwiązanie usprawniające nawigację po dokumentach i ich organizację.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    new IronPdf.ChromePdfRenderer { RenderingOptions = { HtmlFooter = new IronPdf.HtmlHeaderFooter { HtmlFragment = "<center>{page}of{total-pages}</center>", DrawDividerLine = true } } }
         .RenderHtmlAsPdf("<h1>My multi-page document</h1><div style='page-break-after:always;'></div><h1>Page 2</h1>")
         .SaveAs("numbered-pages.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak dodać podstawowe numery stron do pliku PDF?

Używając ciągów zastępczych {page} i {total-pages} z klasą TextHeaderFooter lub HtmlHeaderFooter, można dodać numer bieżącej strony i całkowitą liczbę stron. Ta funkcja jest niezbędna podczas tworzenia nowych plików PDF lub konwersji dokumentów HTML do formatu PDF, które wymagają profesjonalnego formatowania.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-basic.cs
using IronPdf;

// Create text header
TextHeaderFooter textHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};

// Create html footer
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render a new PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

// Add header and footer
pdf.AddTextHeaders(textHeader);
pdf.AddHtmlFooters(htmlFooter);

pdf.SaveAs("pdfWithPageNumber.pdf");
Imports IronPdf

' Create text header
Private textHeader As New TextHeaderFooter() With {.CenterText = "{page} of {total-pages}"}

' Create html footer
Private htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

' Render a new PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")

' Add header and footer
pdf.AddTextHeaders(textHeader)
pdf.AddHtmlFooters(htmlFooter)

pdf.SaveAs("pdfWithPageNumber.pdf")
$vbLabelText   $csharpLabel

Poniżej przedstawiono plik PDF wygenerowany na podstawie powyższego kodu:

Można również dodać nagłówki i stopki z ciągami znaków zastępczymi numerów stron bezpośrednio do opcji renderowania ChromePdfRenderer. Takie podejście jest przydatne podczas pracy z opcjami renderowania w celu dostosowania pliku PDF.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-chromerenderer.cs
using IronPdf;

// Add header and footer to rendering options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "{page} of {total-pages}"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

string html = @"
    <h1>Hello World!</h1>
<div style='page-break-after: always;'/>
    <h1>2nd Page!</h1>";

// Render new PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf");
Imports IronPdf

' Add header and footer to rendering options
Private renderer As New ChromePdfRenderer()
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {.CenterText = "{page} of {total-pages}"}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

Dim html As String = "
    <h1>Hello World!</h1>
<div style='page-break-after: always;'/>
    <h1>2nd Page!</h1>"

' Render new PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

pdf.SaveAs("applyPageNumberWithRenderingOptions.pdf")
$vbLabelText   $csharpLabel

Podczas pracy z dokumentami o złożonej strukturze należy uwzględnić podziały stron i niestandardowe marginesy, aby zapewnić prawidłowe wyświetlanie numerów stron.

Jak mogę dodać numery stron tylko do określonych stron?

Dzięki IronPDF możesz kontrolować, gdzie pojawiają się numery stron. Niech zaczynają od konkretnej strony lub stosują je do określonych grup, takich jak strony o parzystych indeksach. Ta elastyczność jest cenna podczas generowania raportów PDF lub pracy z dokumentami zawierającymi różne sekcje.

Najpierw przygotuj dokument PDF, aby nadać mu numery stron:

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-preparation.cs
using IronPdf;
using System.Linq;
using System.Collections.Generic;

string multi_page_html = @"
    <p>This is the 1st Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 4th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 5th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 6th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 7th Page</p>";

// Create header
HtmlHeaderFooter header = new HtmlHeaderFooter()
{
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};

// Render PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(multi_page_html);

// Create a Page Range 0..6
var allPageIndices = Enumerable.Range(0, pdf.PageCount);
Imports IronPdf
Imports System.Linq
Imports System.Collections.Generic

Private multi_page_html As String = "
    <p>This is the 1st Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 4th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 5th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 6th Page</p>
<div style = 'page-break-after: always;' ></div>
    <p>This is the 7th Page</p>"

' Create header
Private header As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}

' Render PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(multi_page_html)

' Create a Page Range 0..6
Private allPageIndices = Enumerable.Range(0, pdf.PageCount)
$vbLabelText   $csharpLabel

Jak ponumerować tylko strony parzyste?

Opierając się na poprzednim przykładzie, ten kod stosuje numery stron wyłącznie do indeksów stron parzystych. Ponieważ filtrowanie dotyczy indeksów stron parzystych, w wynikowym pliku PDF numery pojawiają się na stronach nieparzystych. Indeksy stron zaczynają się od zera, natomiast numery stron od jednego. Technika ta nadaje się do dokumentów o tradycyjnym formatowaniu książkowym lub w przypadku pracy ze scalonymi dokumentami PDF.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-even-pages.cs
// Get even page indexes (resulting in odd page numbers)
var evenPageIndices = allPageIndices.Where(i => i % 2 == 0);

pdf.AddHtmlHeaders(header, 1, evenPageIndices);
pdf.SaveAs("EvenPages.pdf");
' Get even page indexes (resulting in odd page numbers)
Dim evenPageIndices = allPageIndices.Where(Function(i) i Mod 2 = 0)

pdf.AddHtmlHeaders(header, 1, evenPageIndices)
pdf.SaveAs("EvenPages.pdf")
$vbLabelText   $csharpLabel

Jak ponumerować tylko strony nieparzyste?

Dodaj numery stron do stron o nieparzystych numerach indeksowych. Takie podejście jest powszechne w przypadku drukowania dwustronnego, gdzie numery stron powinny pojawiać się tylko na jednej stronie wydrukowanego dokumentu.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-odd-pages.cs
// Get odd page indexes (resulting in even page numbers)
var oddPageIndexes = allPageIndices.Where(i => i % 2 != 0);

pdf.AddHtmlHeaders(header, 1, oddPageIndexes);
pdf.SaveAs("OddPages.pdf");
' Get odd page indexes (resulting in even page numbers)
Dim oddPageIndexes = allPageIndices.Where(Function(i) i Mod 2 <> 0)

pdf.AddHtmlHeaders(header, 1, oddPageIndexes)
pdf.SaveAs("OddPages.pdf")
$vbLabelText   $csharpLabel

Jak dodać numer strony tylko na ostatniej stronie?

Dodaj numer strony tylko na ostatniej stronie. Jest to przydatne na stronach podsumowujących lub w celu zaznaczenia końca dokumentu.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-last-page-only.cs
// Last page only
var lastPageIndex = new List<int>() { pdf.PageCount - 1 };

pdf.AddHtmlHeaders(header, 1, lastPageIndex);
pdf.SaveAs("LastPageOnly.pdf");
' Last page only
Dim lastPageIndex = New List(Of Integer)() From {pdf.PageCount - 1}

pdf.AddHtmlHeaders(header, 1, lastPageIndex)
pdf.SaveAs("LastPageOnly.pdf")
$vbLabelText   $csharpLabel

Jak dodać numer strony tylko na pierwszej stronie?

Dodaj numer strony tylko na pierwszej stronie. Rozwiązanie to sprawdza się dobrze w przypadku stron tytułowych lub dokumentów, w których identyfikacja jest wymagana tylko na pierwszej stronie.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-first-page-only.cs
// First page only
var firstPageIndex = new List<int>() { 0 };

pdf.AddHtmlHeaders(header, 1, firstPageIndex);
pdf.SaveAs("FirstPageOnly.pdf");
' First page only
Dim firstPageIndex = New List(Of Integer)() From {0}

pdf.AddHtmlHeaders(header, 1, firstPageIndex)
pdf.SaveAs("FirstPageOnly.pdf")
$vbLabelText   $csharpLabel

Jak pominąć pierwszą stronę podczas dodawania numerów stron?

Pomiń pierwszą stronę podczas stosowania nagłówka. To ogólne wymaganie dotyczy dokumentów z okładką lub stroną tytułową, na których nie powinny znajdować się numery stron. W przypadku pracy z formularzami PDF lub dokumentami zawierającymi list przewodni technika ta zapewnia profesjonalne formatowanie.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page.cs
// Skip the first page
var skipFirstPage = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 1, skipFirstPage);
pdf.SaveAs("SkipFirstPage.pdf");
' Skip the first page
Dim skipFirstPage = allPageIndices.Skip(1)

pdf.AddHtmlHeaders(header, 1, skipFirstPage)
pdf.SaveAs("SkipFirstPage.pdf")
$vbLabelText   $csharpLabel

Jak pominąć pierwszą stronę i rozpocząć numerację od 1 na drugiej stronie?

Pomiń pierwszą stronę i zacznij numerację od drugiej strony, traktując ją jako stronę 1. Takie podejście sprawdza się w przypadku dokumentów, w których strona tytułowa nie powinna być uwzględniana w sekwencji numeracji stron, takich jak prace naukowe lub oficjalne raporty.

:path=/static-assets/pdf/content-code-examples/how-to/page-numbers-skip-first-page-and-dont-count-it.cs
// Skip the first page and start numbering the second page as page 1
var skipFirstPageAndDontCountIt = allPageIndices.Skip(1);

pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt);
pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf");
' Skip the first page and start numbering the second page as page 1
Dim skipFirstPageAndDontCountIt = allPageIndices.Skip(1)

pdf.AddHtmlHeaders(header, 0, skipFirstPageAndDontCountIt)
pdf.SaveAs("SkipFirstPageAndDontCountIt.pdf")
$vbLabelText   $csharpLabel

Aby poznać wszystkie opcje metadanych, odwiedź przewodnik po nagłówkach i stopkach IronPDF.

Zaawansowane techniki numerowania stron

Poza podstawowym numerowaniem stron, IronPDF obsługuje zaawansowane scenariusze, w tym:

  • Numeracja na podstawie sekcji: Różne schematy numeracji dla różnych sekcji dokumentu
  • Liczby rzymskie: Niestandardowe formatowanie dla stron wstępu lub dodatków
  • Wiele systemów numeracji: Łączenie różnych stylów numeracji w jednym dokumencie
  • Dynamiczna liczba stron: Aktualizacja całkowitej liczby stron przy dodawaniu lub kopiowaniu stron

Te techniki są wartościowe przy tworzeniu złożonych dokumentów, takich jak podręczniki techniczne, prace naukowe czy dokumenty prawne wymagające zaawansowanych schematów numerowania stron.

Najlepsze praktyki dodawania numerów stron

Podczas implementacji numerów stron w PDF-ach, warto rozważyć następujące praktyki:

  1. Spójność: Zachowaj spójne pozycjonowanie i formatowanie w całym dokumencie
  2. Czytelność: Upewnij się, że numery stron są wyraźnie widoczne i nie nakładają się na treść
  3. Dostępność: Użyj odpowiednich rozmiarów czcionek i kontrastów dla łatwego czytania
  4. Profesjonalny wygląd: Dopasuj styl numerów stron do ogólnego designu dokumentu

Przestrzeganie tych wytycznych oraz wykorzystanie elastycznych możliwości numerowania stron w IronPDF umożliwia tworzenie profesjonalnych, dobrze zorganizowanych dokumentów PDF, które spełniają określone wymagania.

Często Zadawane Pytania

Jak dodac podstawowe numery stron do PDF w C#?

Dzieki IronPDF, mozesz dodac numery stron, uzywajac ciagow znakowych symboli zastepczych {page} i {total-pages} w klasie TextHeaderFooter lub HtmlHeaderFooter. Po prostu dolacz te symbole do swojego fragmentu HTML naglowka lub stopki, a IronPDF automatycznie zamieni je na biezacy numer strony i calkowita liczbe stron podczas renderowania PDF.

Czy moge dodac numery stron bezposrednio poprzez opcje renderowania?

Tak, mozesz dodac numery stron bezposrednio do opcji renderowania IronPDF's ChromePdfRenderer. To podejscie pozwala ustawic naglowki i stopki z ciagami znakow symboli zastepczych numerow stron jako czesc konfiguracji renderowania, co jest szczegolnie uzyteczne przy dostosowywaniu wyjscia PDF poprzez opcje renderowania.

Jakie symbole zastepcze sa dostepne dla numerowania stron?

IronPDF zapewnia dwa glówne symbole zastepcze dla numerowania stron: {page} wyswietla biezacy numer strony, a {total-pages} pokazuje calkowita liczbe stron w dokumencie. Te symbole sa automatycznie zastepowane wartosciami rzeczywistymi podczas renderowania PDF.

Czy moge zastosowac numery stron tylko do konkretnych stron?

Tak, IronPDF pozwala na kontrolowanie, gdzie numery stron pojawiaja sie w Twoim dokumencie. Mozesz okreslic, ktore strony maja wyswietlac numery stron, dzieki czemu mozesz wykluczyc je z stron tytulowych lub zastosowac je tylko do okreslonych sekcji Twojego PDF.

Czy mozna dostosowac rozmieszczenie i stylizacje numerow stron?

Oczywiscie. Za pomoca klasy HtmlHeaderFooter IronPDF, mozesz dostosowac rozmieszczenie, stylizacje i formatowanie numerow stron uzywajac HTML i CSS. Mozesz kontrolowac ich pozycji, czcionke, rozmiar, kolor, a takze dodawac linie oddzielajace czy inne elementy dekoracyjne.

Czy moge dodac numery stron do istniejacych dokumentow PDF?

Tak, IronPDF wspiera dodawanie numerow stron do nowych PDF jak i istniejacych dokumentow PDF. Mozesz zaladowac istniejacy dokument PDF i zastosowac naglowki lub stopki z numerami stron bez ponownego tworzenia callego dokumentu od nowa.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej
Sprawdzone przez
Jeff Fritz
Jeffrey T. Fritz
Główny Menedżer Programu - Zespół .NET Community
Jeff jest również Głównym Menedżerem Programu dla zespołów .NET i Visual Studio. Jest producentem wykonawczym wirtualnej serii konferencji .NET Conf i prowadzi 'Fritz and Friends', transmisję na żywo dla deweloperów emitowaną dwa razy w tygodniu, gdzie rozmawia o technologii i pisze kod razem z widzami. Jeff pisze warsztaty, prezentacje i planuje treści dla największych wydarzeń Microsoft dla deweloperów, w tym Microsoft Build, Microsoft Ignite, .NET Conf i Microsoft MVP Summit.
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.