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.
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#.
Como dividir um PDF em C# usando o iTextSharp
- Primeiro, instale a biblioteca iText7.
- Crie um PdfReader a partir do arquivo PDF de entrada.
- Utilize um PdfDocument para trabalhar com o conteúdo do PDF.
- Calcule o número de páginas para cada arquivo dividido.
- Defina os valores iniciais do intervalo de páginas.
- Utilize um loop para processar cada arquivo dividido.
- Crie um novo documento PdfDocument para o arquivo dividido atual.
- Copie as páginas do documento original para o novo.
- Atualize os valores do intervalo de páginas para a próxima iteração.
- Salve o PDF resultante.
- Repita até que todos os arquivos sejam criados.
- Continue o processo para o número especificado de arquivos divididos.
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

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:
- No Visual Studio, acesse Ferramentas -> Gerenciador de Pacotes NuGet -> Console do Gerenciador de Pacotes.
-
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:
- No Visual Studio, acesse Ferramentas -> Gerenciador de Pacotes NuGet -> Console do Gerenciador de Pacotes.
-
Utilize o seguinte comando para instalar o pacote NuGet iTextSharp:
Install-Package itext7Install-Package itext7SHELL
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
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
inputPdfPath: Uma string que representa o caminho para o arquivo PDF de entrada (por exemplo, "input.pdf").outputFolder: Uma string representando a pasta de saída onde os arquivos PDF divididos serão salvos (ex.: "output_split").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:
- Um objeto
PdfDocumentchamadosourceFileé criado carregando o PDF doinputPdfPathespecificado. - Duas variáveis inteiras,
firstPageelastPage, são inicializadas. Esses valores representam o intervalo de páginas para divisão. totalPageInOneFileé calculado dividindo-se o número total de páginas do PDF de origem pelonumberOfSplitFilesespecificado.- Um loop itera de 1 a
numberOfSplitFiles: - Um novo objeto
PdfDocumentchamadonewSplitPDFé criado. - As páginas de
firstPagealastPage(inclusive) são copiadas desourceFileanewSplitPDF. - 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.
- Os valores
firstPageelastPagesã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:

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
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
- A funcionalidade principal está encapsulada no método
SplitPdfUsingiTextSharp. - O método acima recebe três parâmetros:
inputPdfPath,outputFolderenumberOfSplitFiles.
Usando PdfReader e PdfDocument
Dentro do método SplitPdfUsingiTextSharp:
- Um objeto
PdfReaderchamadoreaderé criado carregando o PDF doinputPdfPathespecificado. - Um objeto
PdfDocumentchamadodocé inicializado usando oreader. - O número total de páginas no PDF de origem é dividido por
numberOfSplitFilespara determinar quantas páginas cada PDF menor deve conter.
Processo de divisão
Um loop itera de 1 a numberOfSplitFiles:
- 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.
- Dentro deste novo documento PDF (
pdfDocument), as páginas são copiadas do originaldoc: - Os códigos
firstPagealastPage(inclusive) são copiados. - O PDF menor é salvo.
- Os valores
firstPageelastPagesã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
Para comparar os dois métodos de divisão usando iTextSharp e IronPDF, vamos avaliá-los com base em diversos fatores:
- 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.
- 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.
- 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.
- 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.
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.



