Como adicionar números de página a um PDF usando C
O IronPDF permite adicionar números de página a PDFs em C# usando as strings de espaço reservado {page} e {total-pages} em cabeçalhos/rodapés, com opções para aplicá-las a páginas ou seções específicas para uma navegação aprimorada do documento.
Os números de página são números sequenciais atribuídos a cada página dentro de um documento PDF. São componentes essenciais para a navegação, ajudando os leitores a localizar páginas específicas e a acompanhar sua posição. A numeração das páginas também facilita a citação e a referência ao conteúdo. Com o IronPDF, adicionar números de página ao seu PDF é muito fácil.
Guia rápido: Adicione números de página a PDFs com facilidade
Adicione números de página a documentos PDF usando o IronPDF. Com um mínimo de código C#, você pode inserir números de página dinâmicos em cabeçalhos ou rodapés, personalizar seu posicionamento e especificar em quais páginas eles aparecerão. Seja para lidar com PDFs novos ou existentes, o IronPDF oferece uma solução flexível para aprimorar a navegação e a organização de documentos.
-
Instale IronPDF com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPdf -
Copie e execute este trecho de código.
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"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Baixe a biblioteca C# PDF do NuGet.
- Carregar um documento PDF existente ou gerar um novo.
- Use os marcadores de posição {page} e {total-pages} no **cabeçalho** e **rodapé** para inserir os números de página.
- Aplique números de página a páginas ou seções específicas.
- Analise o documento PDF resultante.
Como adiciono números de página básicos a um PDF?
Utilizando as strings de espaço reservado {page} e {total-pages} com a classe TextHeaderFooter ou HtmlHeaderFooter , você pode adicionar o número da página atual e o número total de páginas. Essa funcionalidade é essencial ao criar novos PDFs ou converter documentos HTML em PDF que exigem formatação profissional.
: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")
O PDF gerado pelo código acima é mostrado abaixo:
Você também pode adicionar cabeçalhos e rodapés com strings de espaço reservado para números de página diretamente nas opções de renderização do ChromePdfRenderer . Essa abordagem é útil ao trabalhar com opções de renderização para personalizar a saída em 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")
Ao trabalhar com documentos complexos, considere as quebras de página e as margens personalizadas para garantir que os números de página sejam exibidos corretamente.
Como posso adicionar números de página apenas a páginas específicas?
Com o IronPDF, você pode controlar onde os números de página aparecem. Faça com que comecem em uma página específica ou aplique-as a grupos específicos, como páginas com índice par. Essa flexibilidade é valiosa ao gerar relatórios em PDF ou ao trabalhar com documentos que contêm diferentes seções.
Primeiro, prepare o documento PDF para inserir a numeração de páginas:
: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)
Como faço para numerar apenas as páginas pares?
Com base no exemplo anterior, este código aplica números de página exclusivamente aos índices de páginas pares. Como a filtragem se aplica a índices de página pares, o PDF resultante mostra números em páginas com números ímpares. Os índices de página começam em zero, enquanto os números de página começam em um. Essa técnica é adequada para documentos que seguem a formatação tradicional de livros ou para trabalhar com documentos PDF mesclados .
: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")
Como faço para numerar apenas as páginas ímpares?
Adicione números de página às páginas com números de índice ímpares. Essa abordagem é comum em cenários de impressão frente e verso, onde os números de página devem aparecer apenas em um dos lados do documento impresso.
: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")
Como faço para adicionar um número de página apenas à última página?
Adicione um número de página apenas na última página. Isso é útil para páginas de resumo ou para indicar o fim do documento.
: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")
Como faço para adicionar um número de página apenas à primeira página?
Adicione um número de página apenas na primeira página. Isso funciona bem para capas ou documentos onde apenas a primeira página precisa de identificação.
: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")
Como faço para pular a primeira página ao adicionar números de página?
Ao aplicar o cabeçalho, ignore a primeira página. Este requisito comum aplica-se a documentos com capa ou página de título que não devem exibir números de página. Ao trabalhar com formulários ou documentos em PDF , incluindo uma carta de apresentação, essa técnica garante uma formatação profissional.
: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")
Como faço para pular a primeira página e começar a numeração a partir de 1 na segunda página?
Ignore a primeira página e comece a numeração a partir da segunda página, considerando-a como página 1. Essa abordagem é adequada para documentos em que a capa não deve ser considerada na sequência de numeração das páginas, como artigos acadêmicos ou relatórios formais.
: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")
Para explorar todas as opções de metadados, visite o Guia de Cabeçalhos e Rodapés do IronPDF .
Técnicas avançadas de numeração de páginas
Além da numeração básica de páginas, o IronPDF oferece suporte a cenários avançados, incluindo:
Numeração por seção : diferentes esquemas de numeração para diferentes seções do documento.
- Numerais romanos : Formatação personalizada para páginas de prefácio ou apêndice
- Sistemas de numeração múltiplos : Combinação de diferentes estilos de numeração em um único documento.
- Contagem dinâmica de páginas : Atualização da contagem total de páginas ao adicionar ou copiar páginas.
Essas técnicas são valiosas na criação de documentos complexos, como manuais técnicos, artigos acadêmicos ou documentos jurídicos que exigem esquemas sofisticados de numeração de páginas.
Boas práticas para numeração de páginas
Ao implementar números de página em seus PDFs, considere estas práticas:
- Consistência : Mantenha o posicionamento e a formatação consistentes em todo o documento.
- Legibilidade : Certifique-se de que os números de página estejam claramente visíveis e não se sobreponham ao conteúdo.
- Acessibilidade : Utilize tamanhos de fonte e contraste adequados para facilitar a leitura.
- Aparência profissional : Combine o estilo da numeração de páginas com o design geral do seu documento.
Seguindo essas diretrizes e aproveitando os recursos flexíveis de numeração de páginas do IronPDF, você poderá criar documentos PDF profissionais e bem organizados que atendam às suas necessidades específicas.
Perguntas frequentes
Como adiciono números de página básicos a um PDF em C#?
Com o IronPDF, você pode adicionar números de página usando as strings de espaço reservado {page} e {total-pages} nas classes TextHeaderFooter ou HtmlHeaderFooter. Basta incluir esses espaços reservados no fragmento HTML do cabeçalho ou rodapé, e o IronPDF os substituirá automaticamente pelo número da página atual e pela contagem total de páginas ao renderizar o PDF.
Posso adicionar números de página diretamente através das opções de renderização?
Sim, você pode adicionar números de página diretamente às opções de renderização do ChromePdfRenderer do IronPDF. Essa abordagem permite definir cabeçalhos e rodapés com marcadores de posição para números de página como parte da configuração de renderização, o que é particularmente útil ao personalizar a saída em PDF por meio das opções de renderização.
Quais são os caracteres de espaço reservado disponíveis para a numeração de páginas?
O IronPDF fornece duas strings de espaço reservado principais para a numeração de páginas: {page} exibe o número da página atual e {total-pages} mostra o número total de páginas no documento. Esses espaços reservados são substituídos automaticamente por valores reais quando o PDF é gerado.
Posso aplicar números de página apenas a páginas específicas?
Sim, o IronPDF permite controlar onde os números de página aparecem no seu documento. Você pode especificar quais páginas devem exibir números de página, permitindo excluí-los das capas ou aplicá-los apenas a determinadas seções do seu PDF.
É possível personalizar a posição e o estilo dos números de página?
Com certeza. Com a classe HtmlHeaderFooter do IronPDF, você pode personalizar o posicionamento, o estilo e a formatação dos números de página usando HTML e CSS. Você pode controlar a posição, a fonte, o tamanho, a cor e até mesmo adicionar linhas divisórias ou outros elementos decorativos.
Posso adicionar números de página a documentos PDF existentes?
Sim, o IronPDF permite adicionar números de página tanto a novos PDFs quanto a documentos PDF existentes. Você pode carregar um documento PDF existente e aplicar cabeçalhos ou rodapés com números de página sem precisar recriar o documento inteiro do zero.

