Ir para o conteúdo do rodapé
COMPARAçãO DE PRODUTOS

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.

View Full Comparison

"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

  1. Crie um novo projeto em C# usando qualquer IDE.
  2. Crie um novo objeto PDF.
  3. Adicione os números de página ao rodapé HTML.
  4. Criar um PDF a partir de conteúdo HTML.
  5. 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:

Como adicionar números de página em PDF usando iTextSharp em C#: Figura 1 - Instalando o IronPDF a partir do gerenciador de pacotes

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
SHELL

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
$vbLabelText   $csharpLabel

Explicação

  1. Inicializar o renderizador: Criamos uma instância de HtmlToPdf, que fornece o recurso de conversão de HTML para PDF.
  2. Definir conteúdo HTML: O conteúdo HTML que precisa ser convertido em PDF é especificado.
  3. Renderizar conteúdo HTML: A função RenderHtmlAsPdf é usada para converter o HTML em um documento PDF.
  4. Defina o rodapé: os números de página são representados como marcadores de posição no texto do rodapé HTML.
  5. Adicionar rodapé e salvar PDF: Aplique o rodapé ao documento e salve-o como um arquivo PDF.

Como adicionar números de página em PDF usando iTextSharp em C#: Figura 2 - IronPDF: PDF gerado com números de página

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
$vbLabelText   $csharpLabel

Explicação

  1. Criar documento PDF: Inicialize um novo Document e PdfWriter para produzir um arquivo PDF vazio.
  2. Adicionar conteúdo: Adicione conteúdo básico, como parágrafos, ao documento.
  3. 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.
  4. Substitua OnEndPage: Na classe personalizada, substitua o método OnEndPage para adicionar números de página na parte inferior de cada página.
  5. Fechar documento: Finalize o documento fechando-o.

Como adicionar números de página em PDF usando iTextSharp em C#: Figura 3 - iTextSharp: PDF gerado com números de página

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 .

ObserveiTextSharp é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela iTextSharp. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.

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))

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim