Jak dodać numery stron do pliku PDF za pomocą języka C
IronPDF pozwala na dodawanie numerów stron do PDF-ów w C# za pomocą placeholderów {page} i {total-pages} w nagłówkach/stopkach, z opcjami zastosowania ich do określonych stron lub sekcji w celu poprawy 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ę.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
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"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę PDF dla języka C# z NuGet
- Załaduj istniejący dokument PDF lub utwórz nowy
- Użyj ciągów zastępczych {page} i {total-pages} w nagłówku i stopce, aby wstawić numery stron
- Dodaj numery stron do określonych stron lub sekcji
- Sprawdź gotowy dokument PDF
Jak dodać podstawowe numery stron do pliku PDF?
Używając placeholderów {page} i {total-pages} z klasą TextHeaderFooter lub HtmlHeaderFooter, można dodać bieżący numer 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")
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")
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)
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")
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")
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")
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")
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")
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")
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:
- Numerowanie oparte na sekcjach: Różne schematy numeracji dla różnych sekcji dokumentu
- Cyfry rzymskie: Niestandardowe formatowanie dla stron wstępu lub aneksó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:
- Spójność: Utrzymanie spójnego pozycjonowania i formatowania w całym dokumencie
- Czytelność: Upewnij się, że numery stron są wyraźnie widoczne i nie nakładają się na treść
- Dostępność: Używaj odpowiednich rozmiarów czcionki i kontrastu dla łatwego odczytu
- 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
How do I add basic page numbers to a PDF in C#?
With IronPDF, you can add page numbers using placeholder strings {page} and {total-pages} in either the TextHeaderFooter or HtmlHeaderFooter class. Simply include these placeholders in your header or footer HTML fragment, and IronPDF will automatically replace them with the current page number and total page count when rendering the PDF.
Can I add page numbers directly through rendering options?
Yes, you can add page numbers directly to the rendering options of IronPDF's ChromePdfRenderer. This approach allows you to set headers and footers with page number placeholder strings as part of the rendering configuration, which is particularly useful when customizing PDF output through rendering options.
What placeholder strings are available for page numbering?
IronPDF provides two main placeholder strings for page numbering: {page} displays the current page number, and {total-pages} shows the total number of pages in the document. These placeholders are automatically replaced with actual values when the PDF is rendered.
Can I apply page numbers to specific pages only?
Yes, IronPDF allows you to control where page numbers appear in your document. You can specify which pages should display page numbers, enabling you to exclude them from cover pages or apply them only to certain sections of your PDF.
Is it possible to customize the placement and styling of page numbers?
Absolutely. With IronPDF's HtmlHeaderFooter class, you can customize the placement, styling, and formatting of page numbers using HTML and CSS. You can control their position, font, size, color, and even add divider lines or other decorative elements.
Can I add page numbers to existing PDF documents?
Yes, IronPDF supports adding page numbers to both new PDFs and existing PDF documents. You can load an existing PDF document and apply headers or footers with page numbers without recreating the entire document from scratch.

