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

IronPDF vs PDFSharpCore: Qual biblioteca PDF .NET você deve escolher em 2025?

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. iText
  2. IronPDF

Como Dividir PDF em C# Usando iText

  1. Primeiro, instale a biblioteca iText.
  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

Uma Comparação de Divisão de PDF em C# Entre iText e IronPDF: Figura 1 - Página do IronPDF

IronPDF é uma poderosa biblioteca C# projetada para trabalhar com arquivos PDF. It provides features for creating, modifying, and extracting content from PDF documents. 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 .

iText

Uma Comparação de Divisão de PDF em C# Entre iText e IronPDF: Figura 2 - Página do iText

iText (iText) é uma biblioteca largamente usada para trabalhar com arquivos PDF no framework .NET. Oferece recursos avançados para criar, modificar e extrair conteúdo de documentos PDF de forma programática. Os desenvolvedores podem usar o iText para adicionar textos, imagens, tabelas e outros elementos gráficos aos 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 iText foi portado para .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 iText

Para instalar iText usando o Console do Gerenciador de Pacotes no Visual Studio, você pode seguir estas etapas:

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

    Install-Package itext7
    Install-Package itext7
    SHELL

Isso baixará e instalará o pacote iText junto com suas dependências no seu projeto. Assim que a instalação estiver completa, você pode começar a usar o iText 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
        SplitPdfUsing IronPDF(file, outputFolder, numberOfSplitFiles);
    }

    static void SplitPdfUsing IronPDF(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
        SplitPdfUsing IronPDF(file, outputFolder, numberOfSplitFiles);
    }

    static void SplitPdfUsing IronPDF(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

Class Program
    Shared Sub Main(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

    Shared Sub SplitPdfUsingIronPDF(inputPdfPath As String, outputFolder As String, 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
        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
    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 SplitPdfUsing IronPDF é 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 que representa a pasta de saída onde os arquivos PDF split serão salvos (por exemplo, 'output_split').
  3. numberOfSplitFiles: Um inteiro indicando quantos arquivos PDF menores o PDF original será dividido.

Processo de divisão

Dentro do método SplitPdfUsing IronPDF:

  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 o número total de páginas do PDF fonte pelo numberOfSplitFiles especificado.
  4. Um loop itera de 1 a numberOfSplitFiles:
  5. Um novo objeto PdfDocument chamado newSplitPDF é criado.
  6. Páginas de firstPage a lastPage (inclusive) são copiadas do sourceFile para 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:

Uma Comparação de Divisão de PDF em C# Entre iText e IronPDF: Figura 3 - Arquivos de saída criados

Dividir PDFs em C# Usando iText

Agora, usaremos o iText para dividir nosso documento PDF em múltiplos 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 pedaços menores usando iText. Cada documento PDF menor conterá uma parte do documento original.

Dividindo PDF Usando iText

  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 ao carregar 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 fonte é 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 de arquivo como 'SplitPDF_iText_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 doc original:
  3. firstPage para lastPage (inclusive) são copiadas.
  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 iText esteja devidamente instalada e referenciada em seu projeto. Substitua "input.pdf" pelo caminho real do seu arquivo PDF de entrada.

Uma Comparação de Divisão de PDF em C# Entre iText e IronPDF: Figura 4 - Arquivos de saída criados

Comparação

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

  1. Facilidade de uso:
    • iText: O método iText envolve criar um PdfReader, PdfDocument e PdfWriter. Ele calcula intervalos de páginas e copia as páginas para um novo documento. Esta abordagem requer o entendimento da API do iText.
    • 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:
    • iText: O código envolve mais passos, tornando-o ligeiramente 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:
    • iText: O desempenho pode ser afetado pela criação e descarte repetido 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:
    • iText: Criar 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 iText quanto o IronPDF oferecem soluções robustas para dividir arquivos PDF em C#, cada um 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 o iText e o IronPDF depende dos requisitos individuais do projeto e do estilo de desenvolvimento preferido.

ObserveiText é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela iText. 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 Iron

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