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

Comparação da divisão de PDFs em C# entre iTextSharp e IronPDF

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

Os arquivos PDF (Portable Document Format) são amplamente utilizados para compartilhar e apresentar documentos, e há momentos em que você pode precisar dividir um PDF em vários arquivos. Seja para extrair páginas específicas, dividir um documento grande em seções menores ou criar arquivos individuais para cada capítulo, a divisão de PDFs pode ser uma tarefa valiosa em diversos cenários.

Neste artigo, aprenderemos como dividir PDFs usando C#. C# é uma linguagem versátil e poderosa, e existem diversas bibliotecas disponíveis que tornam a manipulação de PDFs relativamente simples. Vamos explorar as duas bibliotecas a seguir para dividir PDFs em C#.

  1. iTextSharp
  2. IronPDF

Como dividir um PDF em C# usando o iTextSharp

  1. Primeiro, instale a biblioteca iText7.
  2. Crie um PdfReader a partir do arquivo PDF de entrada.
  3. Utilize um PdfDocument para trabalhar com o conteúdo do PDF.
  4. Calcule o número de páginas para cada arquivo dividido.
  5. Defina os valores iniciais do intervalo de páginas.
  6. Utilize um loop para processar cada arquivo dividido.
  7. Crie um novo documento PdfDocument para o arquivo dividido atual.
  8. Copie as páginas do documento original para o novo.
  9. Atualize os valores do intervalo de páginas para a próxima iteração.
  10. Salve o PDF resultante.
  11. Repita até que todos os arquivos sejam criados.
  12. Continue o processo para o número especificado de arquivos divididos.

IronPDF

Comparação da divisão de PDF em C# entre iTextSharp e IronPDF: Figura 1 - Página web do IronPDF

IronPDF é uma poderosa biblioteca C# projetada para trabalhar com arquivos PDF. Ele oferece recursos para criar , modificar e extrair conteúdo de documentos PDF. Os desenvolvedores podem gerar PDFs do zero, editar PDFs existentes e mesclá-los ou dividi- los. Além disso, o IronPDF se destaca na conversão de conteúdo HTML para o formato PDF, tornando-o útil para gerar relatórios ou documentação. Com suporte para assinaturas digitais, recursos de segurança e saída de alta qualidade, o IronPDF simplifica tarefas relacionadas a PDFs em aplicativos .NET .

iTextSharp

Comparação da divisão de PDF em C# entre iTextSharp e IronPDF: Figura 2 - Página web do iTextSharp

iTextSharp (iText 7) é uma biblioteca amplamente utilizada para trabalhar com arquivos PDF no .NET Framework. Oferece recursos avançados para criar, modificar e extrair conteúdo de documentos PDF de forma programática. Os desenvolvedores podem usar o iTextSharp para adicionar texto, imagens, tabelas e outros elementos gráficos a PDFs. Além disso, oferece suporte à montagem de documentos, assinaturas digitais e conformidade com padrões de arquivamento e acessibilidade. Originalmente uma biblioteca Java, o iTextSharp foi portado for .NET e possui uma comunidade ativa de desenvolvedores e usuários.

Instalando a biblioteca IronPDF

Para instalar o pacote NuGet IronPDF usando o Console do Gerenciador de Pacotes no Visual Studio, siga estas etapas:

  1. No Visual Studio, acesse Ferramentas -> Gerenciador de Pacotes NuGet -> Console do Gerenciador de Pacotes.
  2. Utilize o seguinte comando para instalar o pacote NuGet IronPDF :

    Install-Package IronPdf

Isso fará o download e a instalação do pacote IronPDF , juntamente com suas dependências, em seu projeto. Após a conclusão da instalação, você poderá começar a usar o IronPDF em seu projeto C# para tarefas relacionadas a PDFs.

Alternativamente, você pode instalar o IronPDF usando o Gerenciador de Pacotes NuGet no Visual Studio ou adicionar o pacote diretamente ao seu arquivo de projeto. Outra opção é baixar o pacote do site oficial e adicioná-lo manualmente ao seu projeto. Cada método oferece uma maneira simples de integrar o IronPDF ao seu projeto C# para funcionalidades relacionadas a PDF.

Instalando a biblioteca iTextSharp

Para instalar o iTextSharp usando o Console do Gerenciador de Pacotes no Visual Studio, siga estes passos:

  1. No Visual Studio, acesse Ferramentas -> Gerenciador de Pacotes NuGet -> Console do Gerenciador de Pacotes.
  2. Utilize o seguinte comando para instalar o pacote NuGet iTextSharp:

    Install-Package itext7
    Install-Package itext7
    SHELL

Isso fará o download e a instalação do pacote iTextSharp, juntamente com suas dependências, em seu projeto. Após a conclusão da instalação, você poderá começar a usar o iTextSharp em seu projeto C# para trabalhar com PDFs.

Dividir documentos PDF em C# usando IronPDF

Podemos dividir um arquivo PDF em vários arquivos PDF usando o IronPDF. Isso proporciona uma maneira simples de alcançar esse objetivo. O código a seguir receberá o arquivo PDF de origem como entrada e o dividirá em vários arquivos PDF.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        string file = "input.pdf";
        // The folder to save the split PDFs
        string outputFolder = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles);
    }

    static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        // Load the input PDF
        PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);

        // Initialize page range values
        int firstPage = 1;
        int lastPage = 2;
        int totalPageInOneFile = sourceFile.PageCount / numberOfSplitFiles;

        for (int i = 1; i <= numberOfSplitFiles; i++)
        {
            // Copy multiple pages into a new document
            PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage, lastPage);

            // Generate the output file path
            string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";

            // Save the new split PDF
            newSplitPDF.SaveAs(name);

            // Update page range values for the next iteration
            firstPage = lastPage + 1;
            lastPage += totalPageInOneFile;
        }
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        string file = "input.pdf";
        // The folder to save the split PDFs
        string outputFolder = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles);
    }

    static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        // Load the input PDF
        PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);

        // Initialize page range values
        int firstPage = 1;
        int lastPage = 2;
        int totalPageInOneFile = sourceFile.PageCount / numberOfSplitFiles;

        for (int i = 1; i <= numberOfSplitFiles; i++)
        {
            // Copy multiple pages into a new document
            PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage, lastPage);

            // Generate the output file path
            string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";

            // Save the new split PDF
            newSplitPDF.SaveAs(name);

            // Update page range values for the next iteration
            firstPage = lastPage + 1;
            lastPage += totalPageInOneFile;
        }
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim file As String = "input.pdf"
		' The folder to save the split PDFs
		Dim outputFolder As String = "output_split"
		Dim numberOfSplitFiles As Integer = 3 ' Specify how many parts you want to split the PDF into
		' Call the SplitPdf method to split the PDF
		SplitPdfUsingIronPDF(file, outputFolder, numberOfSplitFiles)
	End Sub

	Private Shared Sub SplitPdfUsingIronPDF(ByVal inputPdfPath As String, ByVal outputFolder As String, ByVal numberOfSplitFiles As Integer)
		' Load the input PDF
		Dim sourceFile As PdfDocument = PdfDocument.FromFile(inputPdfPath)

		' Initialize page range values
		Dim firstPage As Integer = 1
		Dim lastPage As Integer = 2
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
		Dim totalPageInOneFile As Integer = sourceFile.PageCount / numberOfSplitFiles

		For i As Integer = 1 To numberOfSplitFiles
			' Copy multiple pages into a new document
			Dim newSplitPDF As PdfDocument = sourceFile.CopyPages(firstPage, lastPage)

			' Generate the output file path
			Dim name As String = $"{outputFolder}\SplitPDF_IronPDF_{i}.pdf"

			' Save the new split PDF
			newSplitPDF.SaveAs(name)

			' Update page range values for the next iteration
			firstPage = lastPage + 1
			lastPage += totalPageInOneFile
		Next i
	End Sub
End Class
$vbLabelText   $csharpLabel

Explicação do código

O objetivo deste código é dividir um arquivo PDF em vários arquivos PDF menores usando a biblioteca IronPDF . O método SplitPdfUsingIronPDF foi definido para alcançar essa funcionalidade.

Parâmetros do método

  1. inputPdfPath: Uma string que representa o caminho para o arquivo PDF de entrada (por exemplo, "input.pdf").
  2. outputFolder: Uma string representando a pasta de saída onde os arquivos PDF divididos serão salvos (ex.: "output_split").
  3. numberOfSplitFiles: Um número inteiro que indica em quantos arquivos PDF menores o PDF original será dividido.

Processo de divisão

Dentro do método SplitPdfUsingIronPDF:

  1. Um objeto PdfDocument chamado sourceFile é criado carregando o PDF do inputPdfPath especificado.
  2. Duas variáveis ​​inteiras, firstPage e lastPage, são inicializadas. Esses valores representam o intervalo de páginas para divisão.
  3. totalPageInOneFile é calculado dividindo-se o número total de páginas do PDF de origem pelo numberOfSplitFiles especificado.
  4. Um loop itera de 1 a numberOfSplitFiles:
  5. Um novo objeto PdfDocument chamado newSplitPDF é criado.
  6. As páginas de firstPage a lastPage (inclusive) são copiadas de sourceFile a newSplitPDF.
  7. O PDF resultante, em tamanho menor, é salvo com um nome de arquivo como "SplitPDF_IronPDF_1.pdf" (para a primeira divisão) na pasta de saída especificada.
  8. Os valores firstPage e lastPage são atualizados para a próxima iteração.

Observação

Você deve substituir "input.pdf" pelo caminho real do seu arquivo PDF de entrada. Certifique-se de que a biblioteca IronPDF esteja instalada e referenciada corretamente em seu projeto.

Os arquivos de saída são criados da seguinte forma:

Comparação da divisão de PDF em C# entre iTextSharp e IronPDF: Figura 3 - Arquivos de saída criados

Dividir PDFs em C# usando iTextSharp

Agora, usaremos o iTextSharp para dividir nosso documento PDF em vários arquivos PDF. O código a seguir receberá o arquivo de origem como entrada e dividirá esse documento PDF em vários arquivos menores.

using System;
using iText.Kernel.Pdf;

class Program
{
    static void Main(string[] args)
    {
        string inputPath = "input.pdf";
        // Output PDF files path (prefix for the generated files)
        string outputPath = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles);
    }

    static void SplitPdfUsingiTextSharp(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        using (PdfReader reader = new PdfReader(inputPdfPath))
        {
            using (PdfDocument doc = new PdfDocument(reader))
            {
                // Calculate the number of pages for each split file
                int totalPageInOneFile = doc.GetNumberOfPages() / numberOfSplitFiles;
                int firstPage = 1;
                int lastPage = totalPageInOneFile;

                for (int i = 1; i <= numberOfSplitFiles; i++)
                {
                    // Generate the output file path
                    string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";

                    // Create a new document and attach a writer for the specified output file
                    using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename)))
                    {
                        // Copy pages from the original document to the new document
                        doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
                    }

                    // Update page range values for the next iteration
                    firstPage = lastPage + 1;
                    lastPage += totalPageInOneFile;
                }
            }
        }
    }
}
using System;
using iText.Kernel.Pdf;

class Program
{
    static void Main(string[] args)
    {
        string inputPath = "input.pdf";
        // Output PDF files path (prefix for the generated files)
        string outputPath = "output_split";
        int numberOfSplitFiles = 3; // Specify how many parts you want to split the PDF into
        // Call the SplitPdf method to split the PDF
        SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles);
    }

    static void SplitPdfUsingiTextSharp(string inputPdfPath, string outputFolder, int numberOfSplitFiles)
    {
        using (PdfReader reader = new PdfReader(inputPdfPath))
        {
            using (PdfDocument doc = new PdfDocument(reader))
            {
                // Calculate the number of pages for each split file
                int totalPageInOneFile = doc.GetNumberOfPages() / numberOfSplitFiles;
                int firstPage = 1;
                int lastPage = totalPageInOneFile;

                for (int i = 1; i <= numberOfSplitFiles; i++)
                {
                    // Generate the output file path
                    string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";

                    // Create a new document and attach a writer for the specified output file
                    using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename)))
                    {
                        // Copy pages from the original document to the new document
                        doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
                    }

                    // Update page range values for the next iteration
                    firstPage = lastPage + 1;
                    lastPage += totalPageInOneFile;
                }
            }
        }
    }
}
Imports System
Imports iText.Kernel.Pdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim inputPath As String = "input.pdf"
		' Output PDF files path (prefix for the generated files)
		Dim outputPath As String = "output_split"
		Dim numberOfSplitFiles As Integer = 3 ' Specify how many parts you want to split the PDF into
		' Call the SplitPdf method to split the PDF
		SplitPdfUsingiTextSharp(inputPath, outputPath, numberOfSplitFiles)
	End Sub

	Private Shared Sub SplitPdfUsingiTextSharp(ByVal inputPdfPath As String, ByVal outputFolder As String, ByVal numberOfSplitFiles As Integer)
		Using reader As New PdfReader(inputPdfPath)
			Using doc As New PdfDocument(reader)
				' Calculate the number of pages for each split file
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
				Dim totalPageInOneFile As Integer = doc.GetNumberOfPages() / numberOfSplitFiles
				Dim firstPage As Integer = 1
				Dim lastPage As Integer = totalPageInOneFile

				For i As Integer = 1 To numberOfSplitFiles
					' Generate the output file path
					Dim filename As String = $"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf"

					' Create a new document and attach a writer for the specified output file
					Using pdfDocument As New PdfDocument(New PdfWriter(filename))
						' Copy pages from the original document to the new document
						doc.CopyPagesTo(firstPage, lastPage, pdfDocument)
					End Using

					' Update page range values for the next iteration
					firstPage = lastPage + 1
					lastPage += totalPageInOneFile
				Next i
			End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Explicação do código

Este código demonstra como dividir um arquivo PDF grande em partes menores usando o iTextSharp. Cada documento PDF menor conterá uma porção do documento original.

Dividir um PDF usando o iTextSharp

  1. A funcionalidade principal está encapsulada no método SplitPdfUsingiTextSharp.
  2. O método acima recebe três parâmetros: inputPdfPath, outputFolder e numberOfSplitFiles.

Usando PdfReader e PdfDocument

Dentro do método SplitPdfUsingiTextSharp:

  1. Um objeto PdfReader chamado reader é criado carregando o PDF do inputPdfPath especificado.
  2. Um objeto PdfDocument chamado doc é inicializado usando o reader.
  3. O número total de páginas no PDF de origem é dividido por numberOfSplitFiles para determinar quantas páginas cada PDF menor deve conter.

Processo de divisão

Um loop itera de 1 a numberOfSplitFiles:

  1. Um novo arquivo PDF menor é criado com um nome como "SplitPDF_iTextSharp_1.pdf" (para a primeira divisão) na pasta de saída especificada.
  2. Dentro deste novo documento PDF (pdfDocument), as páginas são copiadas do original doc:
  3. Os códigos firstPage a lastPage (inclusive) são copiados.
  4. O PDF menor é salvo.
  5. Os valores firstPage e lastPage são atualizados para a próxima iteração.

Observação

Certifique-se de que a biblioteca iTextSharp esteja devidamente instalada e referenciada em seu projeto. Substitua "input.pdf" pelo caminho real do seu arquivo PDF de entrada.

Comparação da divisão de PDF em C# entre iTextSharp e IronPDF: Figura 4 - Arquivos de saída criados

Comparação

Para comparar os dois métodos de divisão usando iTextSharp e IronPDF, vamos avaliá-los com base em diversos fatores:

  1. Facilidade de uso:
    • iTextSharp: O método iTextSharp envolve a criação de um PdfReader, um PdfDocument e um PdfWriter. Ele calcula intervalos de páginas e copia as páginas para um novo documento. Essa abordagem requer a compreensão da API do iTextSharp.
    • IronPDF: O método IronPDF envolve a criação de um documento PDF a partir do arquivo de origem, a cópia das páginas e o salvamento em um novo arquivo. Possui uma API mais simples.
  2. Legibilidade do código:
    • iTextSharp: O código envolve mais etapas, tornando-o um pouco mais longo e potencialmente mais complexo de ler.
    • IronPDF: O código é conciso e mais legível devido ao menor número de etapas e chamadas de método.
  3. Desempenho:
    • iTextSharp: O desempenho pode ser afetado pela criação e descarte repetidos de instâncias de PdfDocument.
    • IronPDF: Este método envolve menos etapas e oferece melhor desempenho devido à cópia eficiente de páginas.
  4. Utilização de memória:
    • iTextSharp: A criação de múltiplas instâncias de PdfDocument consumirá mais memória.
    • IronPDF: O método é mais eficiente em termos de memória devido à sua abordagem simplificada.

Conclusão

Em conclusão, tanto o iTextSharp quanto o IronPDF oferecem soluções robustas para dividir arquivos PDF em C#, cada uma com seu próprio conjunto de vantagens. O IronPDF se destaca por sua simplicidade, legibilidade e desempenho potencialmente melhor devido a uma abordagem mais direta.

Desenvolvedores que buscam um equilíbrio entre versatilidade e facilidade de uso podem achar o IronPDF uma escolha atraente. Além disso, o IronPDF oferece um período de teste gratuito . Em última análise, a escolha entre iTextSharp e IronPDF depende dos requisitos específicos de cada projeto e do estilo de desenvolvimento preferido.

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 dividir um PDF em C# mantendo a formatação original?

Você pode usar o IronPDF para dividir um PDF em C# preservando sua formatação. O IronPDF oferece uma API simples que permite carregar um PDF e especificar os intervalos de páginas a serem divididos, garantindo que a formatação original seja mantida nos PDFs resultantes.

Quais são as principais diferenças entre iTextSharp e IronPDF para dividir PDFs em C#?

As principais diferenças residem na facilidade de uso e no desempenho. O IronPDF oferece uma API mais direta, com menos etapas, facilitando a divisão de PDFs sem perda de formatação. Por outro lado, o iTextSharp exige a criação de múltiplas instâncias, como PdfReader , PdfDocument e PdfWriter , o que pode ser mais complexo.

É possível extrair páginas específicas de um PDF usando C#?

Sim, usando o IronPDF, você pode extrair facilmente páginas específicas de um PDF em C#. Ao carregar o PDF e especificar os números de página desejados, o IronPDF permite extrair e salvar essas páginas como um novo documento PDF.

Como o IronPDF melhora a legibilidade do código em comparação com outras bibliotecas PDF?

O IronPDF melhora a legibilidade do código ao oferecer uma API clara e concisa, reduzindo a necessidade de múltiplas classes e objetos. Isso simplifica o código necessário para tarefas de manipulação de PDF, como divisão, resultando em um código mais limpo e de fácil manutenção.

É possível testar a funcionalidade de divisão de PDF em C# antes de adquirir uma biblioteca?

Sim, o IronPDF oferece um período de teste gratuito que permite aos desenvolvedores testar sua funcionalidade de divisão de PDFs e outros recursos. Esse período de teste permite avaliar suas capacidades e desempenho antes de tomar uma decisão de compra.

Que fatores devem ser considerados ao escolher uma biblioteca de PDF para dividir documentos?

Ao selecionar uma biblioteca de PDF, considere fatores como facilidade de uso, simplicidade da API, desempenho e a capacidade de manter a formatação original do documento. O IronPDF costuma ser a opção preferida devido à sua API amigável e desempenho eficiente.

Como posso instalar o IronPDF em um projeto C# do Visual Studio?

Para instalar o IronPDF em um projeto C# do Visual Studio, use o Console do Gerenciador de Pacotes NuGet com o comando Install-Package IronPDF . Você também pode adicioná-lo pela interface do Gerenciador de Pacotes NuGet ou baixá-lo do site oficial do IronPDF.

Dividir um PDF pode afetar sua qualidade ou formatação?

Dividir um PDF com o IronPDF garante que a qualidade e a formatação do documento original sejam preservadas. O processamento eficiente do IronPDF mantém a integridade do conteúdo original.

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