Ir para o conteúdo do rodapé
USANDO O IRONPDF

Como Você Mescla Arquivos PDF em C# .NET?

 Tarefas de mesclagem de PDFs em .NET com IronPDF: Um guia completo em C#: Imagem 1 - Mesclar PDFs com IronPDF

Combinar vários arquivos PDF em um único documento é um requisito comum em aplicações empresariais. Seja para gerar relatórios financeiros consolidados, agrupar contratos jurídicos para arquivamento ou montar faturas em várias partes, a fusão programática de PDFs economiza tempo e elimina etapas manuais. O IronPDF fornece uma API simples que lida com isso em apenas algumas linhas de C#, sem a necessidade de ferramentas externas ou utilitários de linha de comando.

Este guia abrange todos os cenários práticos: mesclagem de dois arquivos, mesclagem de listas de vários arquivos, processamento em memória com MemoryStream e operações pós-mesclagem, como proteção por senha e compressão.

Comece hoje mesmo com um teste gratuito e adicione recursos de mesclagem de PDFs ao seu aplicativo .NET .

Como começar a usar o IronPDF?

Antes de escrever qualquer código de mesclagem, instale o IronPDF a partir do NuGet . O pacote é compatível com o .NET Framework 4.6.2+ e .NET 5/6/7/8/9/10, portanto, funciona em aplicativos de console, serviços ASP.NET Core , Azure Functions e projetos Windows Forms sem quaisquer dependências de tempo de execução adicionais.

Abra o Console do Gerenciador de Pacotes NuGet e execute:

Install-Package IronPdf
Install-Package IronPdf
SHELL

Ou utilize a CLI do .NET :

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

Para obter um passo a passo da configuração, incluindo a solicitação da chave de licença, consulte a visão geral da instalação do IronPDF . Após a instalação do pacote e a aplicação da chave de licença, todos os exemplos deste guia serão executados sem modificações.

Como mesclar documentos PDF programaticamente?

O método PdfDocument.Merge oferece a maneira mais direta de combinar dois arquivos PDF em um único PDF. Carregue cada documento de origem com PdfDocument.FromFile, passe ambos os objetos para Merge e salve o resultado.

Entrada de Fatura Um

 Tarefas de mesclagem de PDF em .NET com IronPDF: Um guia completo em C#: Imagem 2 - Fatura de entrada Um

Fatura de Entrada Dois

 Tarefas de mesclagem de PDF em .NET com IronPDF: Um guia completo em C#: Imagem 3 - Fatura de entrada dois

using IronPdf;

// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");

// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Save the merged document
merged.SaveAs("combined_invoices.pdf");
using IronPdf;

// Load two input PDF files from disk
PdfDocument pdfA = PdfDocument.FromFile("invoice_one.pdf");
PdfDocument pdfB = PdfDocument.FromFile("invoice_two.pdf");

// Merge PDF documents into a single PDF
PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Save the merged document
merged.SaveAs("combined_invoices.pdf");
Imports IronPdf

' Load two input PDF files from disk
Dim pdfA As PdfDocument = PdfDocument.FromFile("invoice_one.pdf")
Dim pdfB As PdfDocument = PdfDocument.FromFile("invoice_two.pdf")

' Merge PDF documents into a single PDF
Dim merged As PdfDocument = PdfDocument.Merge(pdfA, pdfB)

' Save the merged document
merged.SaveAs("combined_invoices.pdf")
$vbLabelText   $csharpLabel

Saída

 Tarefas de mesclagem de PDFs em .NET com IronPDF: Um guia completo em C#: Imagem 4 - Documentos PDF combinados

O método Merge aceita duas instâncias de PdfDocument e retorna um novo documento contendo todas as páginas de ambas as fontes em ordem. O arquivo resultante preserva a formatação original, as imagens, as fontes e o conteúdo incorporado de cada entrada. Após obter o documento mesclado, você pode salvá-lo em disco, retorná-lo de um endpoint da web ou adicionar cabeçalhos e rodapés antes de entregá-lo aos usuários.

Note que PdfDocument.FromFile funciona tanto com caminhos de arquivo quanto com strings URI, portanto, documentos armazenados no armazenamento de blobs na nuvem podem ser carregados diretamente por URL. A operação de mesclagem não é destrutiva: os dois objetos de origem permanecem inalterados após a chamada.

Como mesclar vários arquivos PDF de uma só vez?

Quando você precisar combinar mais de dois documentos, passe um List<PdfDocument> (ou qualquer IEnumerable<PdfDocument>) para o método sobrecarregado Merge. Essa abordagem é escalável, podendo variar de três a centenas de arquivos, sem alterar a estrutura do seu código.

using IronPdf;

// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
};

// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);

// Save the final document
merged.SaveAs("annual_report.pdf");
using IronPdf;

// Build a list of quarterly reports
List<PdfDocument> pdfsToMerge = new()
{
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
};

// Combine into one annual report
PdfDocument merged = PdfDocument.Merge(pdfsToMerge);

// Save the final document
merged.SaveAs("annual_report.pdf");
Imports IronPdf

' Build a list of quarterly reports
Dim pdfsToMerge As New List(Of PdfDocument) From {
    PdfDocument.FromFile("report_q1.pdf"),
    PdfDocument.FromFile("report_q2.pdf"),
    PdfDocument.FromFile("report_q3.pdf"),
    PdfDocument.FromFile("report_q4.pdf")
}

' Combine into one annual report
Dim merged As PdfDocument = PdfDocument.Merge(pdfsToMerge)

' Save the final document
merged.SaveAs("annual_report.pdf")
$vbLabelText   $csharpLabel

Documento PDF mesclado

 Tarefas de mesclagem de PDFs em .NET com IronPDF: Um guia completo em C#: Imagem 5 - Arquivo PDF de saída recém-mesclado

O IronPDF processa as páginas em ordem de lista, portanto, a sequência de documentos em seu List<PdfDocument> controla diretamente a ordem das páginas na saída. Se você precisar reordenar as páginas após a mesclagem, a API de gerenciamento de páginas permite copiar, mover ou excluir páginas individuais de qualquer PdfDocument.

Esse padrão também funciona com documentos gerados em tempo de execução. Por exemplo, você pode converter HTML para PDF para cada seção de um relatório e mesclar os objetos resultantes sem nunca gravar arquivos intermediários no disco. O mesmo se aplica às conversões de DOCX para PDF quando o conteúdo de origem provém de documentos do Word.

Como mesclar arquivos PDF usando o MemoryStream?

O processamento em memória é necessário para serviços web e funções sem servidor, onde a gravação em disco não é possível ou é muito lenta. O IronPDF suporta o carregamento de documentos PDF a partir de matrizes de bytes e expõe o resultado mesclado como um MemoryStream através da propriedade Stream.

using IronPdf;
using System.IO;

// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");

// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);

// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;

// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
using IronPdf;
using System.IO;

// Load PDF content as byte arrays (e.g., from database or HTTP response)
byte[] firstFileBytes = File.ReadAllBytes("contract_part1.pdf");
byte[] secondFileBytes = File.ReadAllBytes("contract_part2.pdf");

// Create PdfDocument objects from byte arrays
PdfDocument doc1 = new PdfDocument(firstFileBytes);
PdfDocument doc2 = new PdfDocument(secondFileBytes);

// Merge and access the result as a stream
PdfDocument merged = PdfDocument.Merge(doc1, doc2);
MemoryStream outputStream = merged.Stream;

// Optionally save to disk as well
merged.SaveAs("merged_contract.pdf");
Imports IronPdf
Imports System.IO

' Load PDF content as byte arrays (e.g., from database or HTTP response)
Dim firstFileBytes As Byte() = File.ReadAllBytes("contract_part1.pdf")
Dim secondFileBytes As Byte() = File.ReadAllBytes("contract_part2.pdf")

' Create PdfDocument objects from byte arrays
Dim doc1 As New PdfDocument(firstFileBytes)
Dim doc2 As New PdfDocument(secondFileBytes)

' Merge and access the result as a stream
Dim merged As PdfDocument = PdfDocument.Merge(doc1, doc2)
Dim outputStream As MemoryStream = merged.Stream

' Optionally save to disk as well
merged.SaveAs("merged_contract.pdf")
$vbLabelText   $csharpLabel

Arquivo de Contrato Consolidado

 Tarefas de mesclagem de PDFs em .NET com IronPDF: Um guia completo em C#: Imagem 6 - Documento PDF de contrato mesclado

A propriedade Stream retorna um MemoryStream posicionado no início, pronto para ser gravado em uma resposta HTTP ou passado para outra etapa de processamento. Em um controlador ASP.NET Core , você pode retornar File(outputStream, "application/pdf", "merged.pdf") diretamente. Não são criados arquivos temporários, o que simplifica a limpeza e reduz a sobrecarga de disco em cenários de alto desempenho.

O IronPDF aceita caminhos de arquivos em formato de string, arrays de bytes e fluxos de dados de forma intercambiável como fontes de entrada, permitindo que você misture e combine os dois na mesma chamada de mesclagem. Um documento carregado de um BLOB de banco de dados pode ser mesclado com um obtido de uma URL sem qualquer etapa de conversão intermediária.

Como os favoritos e a navegação são preservados em arquivos mesclados?

Ao mesclar arquivos PDF, o IronPDF mantém a estrutura de marcadores de cada documento de origem. Os leitores visualizam o sumário completo de todos os arquivos combinados no painel de navegação da saída consolidada, facilitando a transição entre seções originadas de diferentes documentos de origem. Na especificação PDF, os marcadores são armazenados no dicionário de estrutura do documento, e o IronPDF reconstrói essa estrutura corretamente para todas as fontes mescladas.

O salvamento de favoritos ocorre automaticamente, sem necessidade de configuração adicional. Se os arquivos de origem contiverem marcadores aninhados (capítulos e subseções), a hierarquia será mantida na saída mesclada. Para documentos mesclados que precisam de um sumário unificado em vez de árvores de marcadores separadas para cada documento, a API de sumário permite criar uma estrutura de navegação personalizada após a mesclagem.

Se um documento de origem foi criado sem metadados de marcadores, a saída mesclada não conterá entradas de estrutura de tópicos para essa seção. Antes de entregar um arquivo mesclado em um contexto de conformidade ou arquivamento, verifique quais marcadores foram mantidos inspecionando a propriedade OutlineManager no PdfDocument resultante. Você pode renomear programaticamente os rótulos dos favoritos, reordenar as entradas ou inserir novos itens que conectam o conteúdo de diferentes documentos de origem em uma hierarquia lógica. Para fluxos de trabalho que também exigem conversão para PDF/A para arquivamento de longo prazo, aplique a etapa de conversão de conformidade após a mesclagem, em vez de aplicá-la a cada fonte individualmente. Converter o documento final mesclado em uma única etapa é mais eficiente e evita a reconversão de arquivos que possam precisar de edições adicionais.

Após a mesclagem, você também pode adicionar números de página ao documento combinado usando o recurso de numeração de páginas , o que é útil quando a saída abrange dezenas de páginas de várias fontes.

Como aplicar proteção por senha a um PDF mesclado?

Após a fusão, o PdfDocument resultante expõe o SecuritySettings para aplicação de senhas de usuário e proprietário, restringindo os direitos de impressão, cópia e edição.

using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";

// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";

merged.SaveAs("secured_merged.pdf");
using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("part1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("part2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123";

// Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456";

merged.SaveAs("secured_merged.pdf");
Imports IronPdf

Dim pdfA As PdfDocument = PdfDocument.FromFile("part1.pdf")
Dim pdfB As PdfDocument = PdfDocument.FromFile("part2.pdf")

Dim merged As PdfDocument = PdfDocument.Merge(pdfA, pdfB)

' Require a password to open the document
merged.SecuritySettings.UserPassword = "reader123"

' Owner password controls permissions such as printing and editing
merged.SecuritySettings.OwnerPassword = "admin456"

merged.SaveAs("secured_merged.pdf")
$vbLabelText   $csharpLabel

O UserPassword solicita informações aos leitores antes que eles possam visualizar o documento, enquanto o OwnerPassword controla as alterações de permissão. Você pode combinar a proteção por senha com restrições de impressão, sinalizadores de prevenção de cópia e assinaturas digitais. Para obter um guia completo sobre as opções de permissão, o tutorial de segurança em PDF aborda todas as configurações disponíveis.

Se os documentos de origem estiverem protegidos por senha, o IronPDF pode descriptografar os PDFs criptografados antes da mesclagem, desde que você tenha as credenciais de proprietário. Isso significa que você pode mesclar documentos protegidos de diferentes fornecedores ou sistemas em uma única saída protegida, sem etapas manuais de desbloqueio.

Como reduzir o tamanho de um arquivo PDF mesclado?

A fusão de documentos extensos com muitas imagens pode gerar arquivos de saída muito grandes para armazenar ou enviar. A API de compressão de PDF do IronPDF pode reduzir significativamente o tamanho do arquivo, recomprimindo imagens incorporadas com uma qualidade inferior, mantendo a nitidez do texto.

using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100

merged.SaveAs("compressed_merged.pdf");
using IronPdf;

PdfDocument pdfA = PdfDocument.FromFile("report_section1.pdf");
PdfDocument pdfB = PdfDocument.FromFile("report_section2.pdf");

PdfDocument merged = PdfDocument.Merge(pdfA, pdfB);

// Compress embedded images to reduce output file size
merged.CompressImages(60); // quality 0–100

merged.SaveAs("compressed_merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

O argumento inteiro para CompressImages é uma porcentagem de qualidade: valores entre 50 e 75 normalmente reduzem o tamanho do arquivo em 40-70% para documentos com muitas imagens, sem degradação visível do conteúdo de texto. Para documentos que contêm gráficos vetoriais e poucas imagens rasterizadas, a economia é menor, mas ainda assim é seguro incluí-los.

Quais são os casos de uso comuns para a fusão de PDFs?

A API PdfDocument.Merge é adequada para uma ampla gama de fluxos de trabalho de documentos em aplicações .NET de produção:

Cenários comuns de mesclagem de PDFs e a abordagem do IronPDF para cada um deles.
Caso de usoFontes de entradaAbordagem recomendada
Relatório financeiro anualQuatro arquivos PDF trimestrais em disco.Mesclar lista com `Merge(List)`
contrato legal multipartesContrato base + alterações do banco de dadosCarregamento de matriz de bytes + mesclagem em memória
Consolidação de faturasFaturas renderizadas em HTML por item de linhaConversão de HTML para PDF item por item e, em seguida, fusão da lista.
Entrega automatizada de relatóriosArquivos de origem mistos em DOCX e PDFConversão de DOCX para PDF e posterior fusão.
Arquivo seguro de documentosVários relatórios departamentaisMesclar listas + `SecuritySettings`

Para fluxos de trabalho em que os documentos precisam ser extraídos seletivamente antes da mesclagem, a API de divisão de PDF pode extrair intervalos de páginas específicos de um documento de origem. Você pode copiar páginas diretamente entre arquivos PDF , o que é útil quando apenas determinadas seções de um documento grande precisam aparecer na saída mesclada.

O IronPDF também suporta a extração de texto e imagens de documentos mesclados para processamento posterior, tornando-o adequado como uma etapa central de montagem de documentos em fluxos de dados maiores.

Quais são os seus próximos passos?

O método PdfDocument.Merge do IronPDF abrange toda a gama de cenários de mesclagem de PDFs em .NET com o mínimo de código: mesclagem de dois arquivos, mesclagem de listas de vários arquivos, processamento em memória, saídas protegidas por senha e compressão pós-mesclagem. Todas as abordagens utilizam a mesma API consistente, independentemente do tipo de fonte de entrada.

Inicie um teste gratuito para executar esses exemplos em seu próprio projeto. Para implantação em produção, veja as opções de licenciamento que melhor se adequam ao tamanho e ao uso da sua equipe.

Após adicionar suporte à mesclagem, explore as operações de documento relacionadas: divida um PDF em arquivos separados , adicione números de página a documentos com várias páginas ou aplique marcas d'água a todas as páginas do documento mesclado.

Comece a usar IronPDF no seu projeto hoje mesmo com um teste gratuito.

Primeiro passo:
green arrow pointer

Perguntas frequentes

Como você mescla dois arquivos PDF em C#?

Carregue cada arquivo com PdfDocument.FromFile, depois chame PdfDocument.Merge(pdfA, pdfB) e salve o resultado com merged.SaveAs.

Como você mescla mais de dois arquivos PDF em .NET?

Crie uma List contendo todos os documentos de origem e passe-a para PdfDocument.Merge(list). A saída preserva a ordem da lista.

Você pode mesclar PDFs na memória sem gravar em disco?

Sim. Carregue documentos a partir de arrays de bytes usando new PdfDocument(bytes), mescle-os e acesse o resultado via merged.Stream para evitar qualquer gravação em disco.

O IronPDF preserva os marcadores ao mesclar PDFs?

Sim. O IronPDF carrega automaticamente a estrutura de marcadores (contornos) de cada documento de origem para a saída mesclada, incluindo hierarquias de marcadores aninhados.

Como você protege com senha um PDF mesclado em C#?

Após a mesclagem, defina merged.SecuritySettings.UserPassword para a senha do leitor e merged.SecuritySettings.OwnerPassword para a senha de permissões, depois chame SaveAs.

Como você reduz o tamanho do arquivo de um PDF mesclado?

Chame merged.CompressImages(quality) com um valor de qualidade entre 50 e 75 antes de salvar. Isso recompacta as imagens raster incorporadas e costuma reduzir o tamanho do arquivo em 40-70% para documentos pesados em imagens.

O IronPDF pode mesclar arquivos PDF criptografados?

Sim. O IronPDF pode carregar e mesclar PDFs criptografados quando você possui a senha do proprietário. Use PdfDocument.FromFile(path, password) para desbloquear o arquivo antes da mesclagem.

A API de mesclagem do IronPDF funciona no ASP.NET Core?

Sim. O resultado da mesclagem pode ser retornado como File(merged.Stream, "application/pdf", "merged.pdf") de qualquer ação do controlador ASP.NET Core.

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