Como adicionar números de página em um PDF usando iTextSharp em C#
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
"Portable Document Format", ou PDF, é um formato de arquivo criado pela Adobe. Os PDFs são muito úteis ao apresentar documentos que precisam ter texto e imagens formatados de maneira consistente. No mundo atual, os arquivos PDF são essenciais e utilizados para a criação de documentos e faturamento em todos os setores corporativos. Graças às diversas bibliotecas de PDF disponíveis no mercado, criar PDFs tornou-se praticamente instintivo. Para escolher a biblioteca de PDF mais adequada para você, é fundamental avaliar os benefícios e as características de cada uma antes de utilizá-la em seu projeto.
Neste artigo, veremos como adicionar números de página em um PDF usando o iTextSharp em C#. Além disso, vamos comparar o iTextSharp com o IronPDF .
Como adicionar números de página em um PDF usando iTextSharp em C
- Crie um novo projeto em C# usando qualquer IDE.
- Crie um novo objeto PDF.
- Adicione os números de página ao rodapé HTML.
- Criar um PDF a partir de conteúdo HTML.
- Salve o arquivo PDF no seu computador.
O que é o IronPDF?
IronPDF é um .NET Framework robusto para PDF que os desenvolvedores usam para criar, visualizar e editar PDFs com facilidade. O IronPDF é uma ferramenta sofisticada que funciona internamente com um mecanismo baseado no Chromium. Ele pode converter arquivos HTML5, JavaScript, CSS e de imagem para PDF, adicionar cabeçalhos e rodapés personalizados e produzir PDFs exatamente como aparecem em um navegador. O IronPDF suporta diversos formatos online e para a internet, incluindo HTML, ASPX, Razor View e MVC.
Funcionalidades do IronPDF
- Utilizando código .NET C# para criar, ler e editar arquivos PDF com facilidade.
- Criação de PDFs a partir de um link de URL de um site, gerenciando User-Agents, Proxies, Cookies, cabeçalhos HTTP e variáveis de formulário para permitir o login usando formulários de login HTML.
- Extração de imagens de arquivos PDF existentes.
- Incluindo elementos em um PDF: tabelas, texto, imagens, marcadores, marcas d'água, cabeçalhos, rodapés e muito mais.
- Capacidade de dividir e combinar páginas de vários documentos PDF com facilidade.
Para saber mais sobre a documentação do IronPDF , consulte aqui .
Instalando o IronPDF
Nas Ferramentas do Visual Studio, selecione o Gerenciador de Pacotes NuGet e você encontrará a interface de linha de comando do Visual Studio em Ferramentas. O comando abaixo deve ser inserido na aba de terminal do gerenciador de pacotes.
Install-Package IronPdf
Ou podemos usar o método do gerenciador de pacotes. É possível instalar o pacote diretamente na solução usando a opção Gerenciador de Pacotes NuGet do Visual Studio. Existe uma caixa de pesquisa disponível para localizar pacotes no site do NuGet . Basta procurar por "IronPDF" no gerenciador de pacotes, como ilustra a captura de tela abaixo:

A lista de resultados de pesquisa relevantes é exibida na imagem acima. Para instalar o pacote no seu sistema, faça as seleções necessárias.
Agora que o pacote foi baixado e instalado, ele pode ser utilizado no projeto atual.
O que é o iTextSharp?
iTextSharp é uma biblioteca flexível para produzir e modificar documentos PDF em C#. Oferece diversas funcionalidades, como criptografia, fusão de PDFs, extração de texto e imagem, e muito mais. O iTextSharp é uma ferramenta eficiente para diversas tarefas, incluindo a adição de números de página em PDFs.
Recursos do iTextSharp
- Uma API para gerar documentos PDF está disponível através da biblioteca iText.
- Tanto strings HTML quanto XML podem ser analisadas e convertidas em arquivos PDF usando o programa iText.
- Podemos adicionar marcadores, números de página e indicadores aos nossos documentos PDF usando a biblioteca iText.
- Também podemos dividir um documento PDF em vários PDFs ou mesclar vários documentos PDF em um único PDF usando a biblioteca iText.
- Podemos modificar formulários PDF com o iText.
Instale o iTextSharp
Utilize o gerenciador de pacotes NuGet para pesquisar por iText. O iText7 e o iText.pdfhtml são instalações obrigatórias, pois as funcionalidades do iText estão divididas em vários pacotes.
Caso opte pela interface visual de linha de comando, os seguintes pacotes precisam ser instalados:
Install-Package iText7
Install-Package itext7.pdfhtml
Install-Package iText7
Install-Package itext7.pdfhtml
Como o iText 7 é a versão mais recente, é a que estamos utilizando em nossa solução.
Adicionando números de página usando o IronPDF
Adicionar números de página a arquivos PDF é simples graças à biblioteca abrangente do IronPDF. Para ilustrar, veja o código abaixo:
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Initialize the IronPdf renderer
var renderer = new IronPdf.HtmlToPdf();
// HTML content to convert to PDF
string header = "<h1>Hello Ironpdf!</h1>";
// Render the HTML content to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the footer with page number placeholders
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the output PDF file
pdf.SaveAs("output.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Initialize the IronPdf renderer
var renderer = new IronPdf.HtmlToPdf();
// HTML content to convert to PDF
string header = "<h1>Hello Ironpdf!</h1>";
// Render the HTML content to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
// Define the footer with page number placeholders
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"
};
// Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter);
// Save the output PDF file
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize the IronPdf renderer
Dim renderer = New IronPdf.HtmlToPdf()
' HTML content to convert to PDF
Dim header As String = "<h1>Hello Ironpdf!</h1>"
' Render the HTML content to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
' Define the footer with page number placeholders
Dim htmlFooter As New HtmlHeaderFooter With {.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>"}
' Add footer to the PDF
pdf.AddHtmlFooters(htmlFooter)
' Save the output PDF file
pdf.SaveAs("output.pdf")
End Sub
End Class
Explicação
- Inicializar o renderizador: Criamos uma instância de
HtmlToPdf, que fornece o recurso de conversão de HTML para PDF. - Definir conteúdo HTML: O conteúdo HTML que precisa ser convertido em PDF é especificado.
- Renderizar conteúdo HTML: A função
RenderHtmlAsPdfé usada para converter o HTML em um documento PDF. - Defina o rodapé: os números de página são representados como marcadores de posição no texto do rodapé HTML.
- Adicionar rodapé e salvar PDF: Aplique o rodapé ao documento e salve-o como um arquivo PDF.

Para saber mais sobre o código IronPDF , consulte aqui .
Adicionando números de página usando o iTextSharp
Primeiro, vamos usar o iTextSharp para gerar um novo documento PDF. Aqui está uma ilustração básica de como criar um novo documento PDF com números de página:
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
document.Open();
document.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
document.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table for the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
// Add page number to the table cell
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
}
}
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// Create a new PDF document
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
// Open the document to add content
document.Open();
document.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
document.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
// Create a table for the page number
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
// Add page number to the table cell
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
// Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
}
}
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Namespace ConsoleApp1
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new PDF document
Dim document As New Document()
Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("output.pdf", FileMode.Create))
' Open the document to add content
document.Open()
document.Add(New Paragraph("Hello, world!"))
' Attach page number event to PDF writer
writer.PageEvent = New PageNumberEventHandler()
' Close the document
document.Close()
End Sub
End Class
Public Class PageNumberEventHandler
Inherits PdfPageEventHelper
Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnEndPage(writer, document)
' Create a table for the page number
Dim table As New PdfPTable(1)
table.TotalWidth = 300F
table.HorizontalAlignment = Element.ALIGN_CENTER
' Add page number to the table cell
Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
cell.Border = 0
table.AddCell(cell)
' Write the table at the bottom of the page
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent)
End Sub
End Class
End Namespace
Explicação
- Criar documento PDF: Inicialize um novo
DocumentePdfWriterpara produzir um arquivo PDF vazio. - Adicionar conteúdo: Adicione conteúdo básico, como parágrafos, ao documento.
- Numeração de páginas: Utilizamos o mecanismo de tratamento de eventos do iTextSharp para incluir números de página. Criamos uma classe personalizada que herda de
PdfPageEventHelper. - Substitua
OnEndPage: Na classe personalizada, substitua o métodoOnEndPagepara adicionar números de página na parte inferior de cada página. - Fechar documento: Finalize o documento fechando-o.

Conclusão
Em resumo, a especialização, a usabilidade e a integração perfeita do IronPDF com ambientes .NET o posicionam como a melhor opção para cenários que exigem conversão de HTML para PDF e funcionalidades relacionadas, embora o iTextSharp ainda seja um forte concorrente no mercado de bibliotecas de manipulação de PDF em C#. Com o IronPDF, você pode criar faturas, relatórios e documentos gerados dinamicamente a partir de conteúdo HTML com a facilidade, eficácia e adaptabilidade necessárias para ter sucesso no ambiente de desenvolvimento moderno.
A edição Lite do IronPDF inclui uma licença permanente, opções de atualização e um ano de manutenção do software. O período de teste com marca d'água permite que os usuários avaliem o produto em situações práticas. Visite a página de licenças para saber mais. Para obter mais detalhes sobre a Iron Software, visite o site deles .
Perguntas frequentes
Como posso adicionar números de página a um PDF usando o iTextSharp em C#?
Para adicionar números de página usando iTextSharp em C#, você pode criar uma classe personalizada que herde de PdfPageEventHelper . Sobrescreva o método OnEndPage para inserir os números de página e associe esse evento à instância PdfWriter .
Por que os PDFs são cruciais em diversos setores?
Os PDFs mantêm a formatação consistente de texto e imagens, o que é essencial para a criação de documentos e faturamento em diversos setores corporativos. São confiáveis para apresentar documentos de forma profissional.
Quais são as vantagens de usar o IronPDF para manipulação de PDFs?
O IronPDF oferece recursos robustos para criar, visualizar e editar PDFs em ambientes .NET. Ele se destaca na conversão de HTML, JavaScript e imagens para PDF e suporta cabeçalhos, rodapés e marcas d'água personalizados.
O IronPDF consegue converter HTML para PDF com suporte a JavaScript?
Sim, o IronPDF pode converter conteúdo HTML, incluindo JavaScript, em PDFs, mantendo o layout e a funcionalidade tal como aparecem num navegador web.
Como posso instalar o IronPDF em um projeto C#?
Você pode instalar o IronPDF usando o Gerenciador de Pacotes NuGet no Visual Studio. Basta pesquisar por 'IronPDF' e adicioná-lo ao seu projeto para começar a usar seus recursos.
Qual a importância do período de teste oferecido pelo IronPDF?
O período de avaliação do IronPDF permite que os desenvolvedores explorem seus recursos e funcionalidades em aplicações reais com uma versão de avaliação com marca d'água, ajudando-os a avaliar sua adequação antes de adquirir uma licença.
Como o iTextSharp se compara ao IronPDF na adição de números de página?
Embora o iTextSharp utilize o tratamento de eventos para adicionar números de página, o IronPDF oferece uma abordagem mais direta com modelos HTML para cabeçalhos e rodapés, tornando-o ideal para desenvolvedores .NET que buscam facilidade de uso.
O que deve ser considerado ao escolher uma biblioteca PDF para um projeto C#?
Considere os recursos que cada biblioteca oferece. Por exemplo, o IronPDF é especializado em conversão de HTML para PDF e se integra bem com frameworks .NET, enquanto o iTextSharp oferece criptografia robusta e recursos de extração de texto.
O iTextSharp é compatível com o .NET 10 para adicionar números de página, ou devo usar o iText 7?
O iTextSharp (versão 5.x) está oficialmente obsoleto e em modo de manutenção; ele recebe apenas correções de segurança e não há novas atualizações de recursos. Ele não é compatível diretamente com o .NET 10 e seu uso em versões modernas do .NET pode levar a limitações de compatibilidade. Para novos projetos ou para aqueles que estão atualizando para o .NET 10, o iText 7 (ou iText Core) é altamente recomendado, pois oferece suporte às estruturas mais recentes e inclui melhorias em relação ao iTextSharp. ([itextpdf.com](https://itextpdf.com/products/itextsharp?utm_source=openai))



