IRONSOFTWAREHOME
USANDO O IRONPDF

Como criar um gerador de PDF em Xamarin

Curtis Chau
Curtis Chau
Updated: 5 de julho de 2026

Converter um documento Word para PDF em C# requer três linhas de código com IronPDF: criar um DocxToPdfRenderer, chamar RenderDocxAsPdf e salvar o resultado. Sem instalação do Microsoft Office, sem interoperabilidade COM, sem configuração complexa de servidor — apenas um pacote NuGet e código .NET que funciona em qualquer ambiente, incluindo nuvem, Docker e serviços do Windows.

Como instalar o IronPDF em um projeto ASP.NET ?

Abra o Console do Gerenciador de Pacotes no Visual Studio e execute o seguinte comando para instalar o IronPDF:

PM > Install-Package IronPdf

Uma vez que o pacote esteja instalado, adicione uma diretiva using IronPdf; aos seus arquivos C#. O IronPDF é compatível com o .NET 8 e versões posteriores, incluindo ASP.NET Core, ASP.NET Framework 4.6.2+ e projetos de serviços de trabalho modernos. Não são necessários componentes de tempo de execução adicionais nem licenças do Microsoft Office.

Antes de executar em produção, defina sua chave de licença uma vez no início da aplicação - por exemplo, no topo de Program.cs. Você pode ler a chave de appsettings.json para manter as credenciais fora do controle de versão: IronPdf.License.LicenseKey = configuration["IronPdf:LicenseKey"]!;.

Quais versões do .NET o IronPDF suporta?

O IronPDF é compatível com as seguintes plataformas:

Compatibilidade do IronPDF com a plataforma .NET
PlataformaVersão mínimaNãotas
.NET8, 9, 10Apoio total, recomendado.
.NET Framework4.6.2Somente para Windows
ASP.NET Core3.1+Middleware e controladores MVC
Azure Functionsv4Modelo de processo isolado
Docker / LinuxQualquerRequer libgdiplus

Como Converter um Documento Word para PDF em C#?

A classe DocxToPdfRenderer é o ponto de entrada para todas as conversões de Word para PDF. Ela aceita um caminho de arquivo, um array de bytes ou um Stream, e retorna um objeto PdfDocument que você pode salvar, criptografar, mesclar ou servir diretamente via HTTP.

Aqui está a conversão mais simples possível:

using IronPdf;

// Set license key before first use
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("report.docx");
pdf.SaveAs("report.pdf");

O que acontece com a formatação durante a conversão?

DocxToPdfRenderer preserva os seguintes elementos do documento Word durante a conversão:

Formatação de texto : fontes, tamanhos, negrito, itálico, sublinhado, tachado.

  • Estilos de parágrafo -- títulos, corpo do texto, listas (ordenadas e não ordenadas)
  • Tabelas -- bordas, células mescladas, sombreamento e largura das colunas
  • Imagens -- imagens embutidas e flutuantes em sua resolução original
  • Cabeçalhos e rodapés -- números de página, datas e conteúdo personalizado
  • Layout da página -- margens, orientação (retrato/paisagem), tamanho do papel

Para obter informações detalhadas sobre o comportamento em casos extremos, como objetos OLE incorporados ou alterações rastreadas, consulte a documentação do DocxToPdfRenderer .

Como converter um arquivo DOCX carregado de um fluxo de dados?

Ao receber um arquivo DOCX como upload ou ao lê-lo de um blob de banco de dados, você pode passar o fluxo diretamente para o renderizador:

using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

using var docxStream = new FileStream("document.docx", FileMode.Open);
var renderer = new DocxToPdfRenderer();
var pdfDocument = renderer.RenderDocxAsPdf(docxStream);
pdfDocument.SaveAs("output.pdf");

Essa abordagem evita a gravação de arquivos temporários em disco, o que é importante em ambientes de sistema de arquivos somente leitura, como o Azure App Service.

Como converter vários arquivos DOCX em lote?

Quando você precisa processar uma pasta inteira de documentos, itere sobre os arquivos e reutilize uma única instância DocxToPdfRenderer. Reutilizar o renderizador evita a sobrecarga de inicialização repetida:

using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

var renderer = new DocxToPdfRenderer();
string[] docxFiles = Directory.GetFiles(@"C:\WordDocuments", "*.docx");

foreach (string docxFile in docxFiles)
{
    var pdf = renderer.RenderDocxAsPdf(docxFile);
    string pdfPath = Path.ChangeExtension(docxFile, ".pdf");
    pdf.SaveAs(pdfPath);
    Console.WriteLine($"Converted: {Path.GetFileName(pdfPath)}");
}

Documento Word de entrada convertido para arquivo PDF

Como Converter Word para PDF ASP.NET com IronPDF: Imagem 1 - Documento Word de entrada vs. arquivo PDF de saída

Arquivos de saída

Como Converter Word para PDF ASP.NET com IronPDF: Imagem 2 - Arquivos Word originais e os PDFs renderizados no diretório especificado

Para cenários de alta produtividade, considere paralelizar o loop com Parallel.ForEach. Crie um DocxToPdfRenderer por thread se você executar conversões concorrentes, já que a classe não é segura para threads quando compartilhada entre eles.

Como usar a Mala Direta para gerar PDFs personalizados?

A Mala Direta permite definir um modelo DOCX com espaços reservados e, em seguida, preenchê-los com dados em tempo de execução. Esse padrão é ideal para faturas, contratos, certificados e qualquer documento cuja estrutura seja fixa, mas o conteúdo varie de acordo com o destinatário.

O DocxToPdfRenderer do IronPDF aceita um DataTable, um Dictionary<string, string> ou uma fonte de dados personalizada através da propriedade MailMergeDataSource:

using IronPdf;
using System.Data;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Build the data source
var data = new DataTable();
data.Columns.Add("CustomerName");
data.Columns.Add("InvoiceNumber");
data.Columns.Add("TotalAmount");
data.Rows.Add("Acme Corp", "INV-2026-001", "$4,500.00");

var renderer = new DocxToPdfRenderer();
renderer.MailMergeDataSource = data;

var pdf = renderer.RenderDocxAsPdf("invoice_template.docx");
pdf.SaveAs("acme_invoice.pdf");

Não modelo DOCX, circunde cada nome de campo com duplos sinais de menor (por exemplo, <<CustomerName>>) para marcar os campos de mesclagem. Não momento da conversão, o IronPDF substitui cada marcador de posição pelo valor da coluna correspondente da fonte de dados. Você pode aprender mais sobre padrões de automação de documentos na documentação de mala direta do Microsoft Word .

Como proteger um PDF após a conversão de DOCX?

Após a conversão, você pode aplicar proteção por senha e restrições de permissão diretamente no objeto PdfDocument antes de salvar. Isso é útil ao distribuir relatórios financeiros, contratos legais ou qualquer documento que não deva ser copiado ou impresso livremente:

using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("confidential.docx");

// Require a password to open the file
pdf.SecuritySettings.UserPassword = "user123";

// Owner password allows overriding restrictions
pdf.SecuritySettings.OwnerPassword = "owner456";

// Restrict printing and content copying
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secured_document.pdf");

Configurações de segurança do PDF aplicadas

Como Converter Word para PDF ASP.NET com IronPDF: Imagem 3 - Configurações de Segurança do PDF

O IronPDF utiliza criptografia AES de 128 bits e 256 bits, dependendo da versão do PDF. Para obter mais detalhes sobre todas as opções de segurança disponíveis, consulte a documentação de segurança do IronPDF .

A tabela a seguir resume as propriedades de segurança mais comumente usadas:

Configurações de segurança do IronPDF para documentos PDF
PropriedadeTipoDescrição
UserPasswordstringÉ necessária uma senha para abrir o documento.
Senha do proprietáriostringSenha que ignora todas as restrições.
AllowUserPrintingEnumeração PdfPrintSecurityControla as permissões de impressão
Permitir que o usuário copie e cole o conteúdo.boolPermite ou bloqueia a cópia de texto.
AllowUserAnnotationsboolPermite ou bloqueia ferramentas de anotação
AllowUserFormDataboolPermite ou bloqueia o preenchimento de formulários.

Como integrar a conversão de DOCX para PDF em um controlador ASP.NET Core ?

Para expor a conversão de Word para PDF como um endpoint HTTP, injete a lógica de conversão em uma ação do controlador. O exemplo a seguir aceita o envio de um formulário multipart, converte o arquivo na memória e retorna o PDF como um arquivo para download:

using IronPdf;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class DocumentController : ControllerBase
{
    [HttpPost("convert")]
    public IActionResult ConvertWordToPdf(IFormFile wordFile)
    {
        if (wordFile == null || wordFile.Length == 0)
            return BadRequest("Please upload a valid Word document.");

        using var stream = new MemoryStream();
        wordFile.CopyTo(stream);

        var renderer = new DocxToPdfRenderer();
        var pdfDocument = renderer.RenderDocxAsPdf(stream.ToArray());

        return File(pdfDocument.BinaryData, "application/pdf", "converted.pdf");
    }
}

Como registrar o IronPDF no contêiner de injeção de dependência?

Para aplicativos maiores, registre DocxToPdfRenderer como singleton através do sistema de injeção de dependência embutido do ASP.NET Core. Em Program.cs, adicione builder.Services.AddSingleton<DocxToPdfRenderer>(); após definir a chave de licença. Registrar o renderizador como um singleton significa que o objeto é inicializado uma única vez e reutilizado em todas as solicitações, o que reduz a sobrecarga por solicitação. Injete-o nos controladores e serviços através do construtor, como faria com qualquer outra dependência.

Que mecanismos de tratamento de erros você deve adicionar?

Os documentos do Word podem conter recursos não suportados ou estar malformados. Envolva as chamadas de conversão em um bloco try/catch para lidar com IronPdfException e retornar uma resposta significativa para o chamador:

try
{
    var pdf = renderer.RenderDocxAsPdf(stream.ToArray());
    return File(pdf.BinaryData, "application/pdf", "output.pdf");
}
catch (IronPdfException ex)
{
    // Log the exception and return a 422 Unprocessable Entity
    return UnprocessableEntity($"Conversion failed: {ex.Message}");
}

Um bom tratamento de erros impede que exceções não tratadas cheguem aos usuários finais e facilita significativamente a depuração de problemas de conversão.

Como mesclar um PDF convertido com um documento existente?

Um fluxo de trabalho comum envolve converter uma carta de apresentação em formato DOCX e, em seguida, adicioná-la como prefixo a um relatório em PDF já existente. A funcionalidade de mesclagem de PDFs do IronPDF torna isso uma tarefa de apenas uma linha de comando:

using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

var renderer = new DocxToPdfRenderer();
var coverLetter = renderer.RenderDocxAsPdf("cover_letter.docx");
var existingReport = PdfDocument.FromFile("annual_report.pdf");

// Merge cover letter (first) with existing report (second)
var merged = PdfDocument.Merge(coverLetter, existingReport);
merged.SaveAs("final_document.pdf");

Você pode mesclar quantos objetos PdfDocument forem necessários passando uma coleção para PdfDocument.Merge. Para cenários mais avançados de montagem de documentos, explore a possibilidade de adicionar páginas a um PDF existente ou inserir marcas d'água no resultado convertido.

Como adicionar marcas d'água ou cabeçalhos a PDFs convertidos?

Após converter um arquivo DOCX, você pode adicionar cabeçalhos, rodapés e marcas de texto personalizados a cada página. Isso é útil para adicionar status de aprovação, avisos de confidencialidade ou identidade visual aos documentos gerados:

using IronPdf;

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("proposal.docx");

// Add a text stamp on every page
pdf.ApplyStamp(new TextStamp("DRAFT", new TextStampStyle
{
    FontSize = 36,
    FontColor = IronSoftware.Drawing.Color.FromArgb(100, 200, 0, 0),
    VerticalAlignment = VerticalAlignment.Middle,
    HorizontalAlignment = HorizontalAlignment.Center,
    Rotation = -45
}));

pdf.SaveAs("proposal_draft.pdf");

Para cabeçalhos e rodapés baseados em HTML que incluem números de página, consulte a documentação de cabeçalhos e rodapés do IronPDF .

Como você compara o IronPDF com outras bibliotecas de conversão de Word para PDF?

Existem diversas bibliotecas para converter arquivos DOCX em PDF no .NET. Compreender as vantagens e desvantagens ajuda você a escolher a ferramenta certa para o seu caso de uso.

O Telerik Document Processing (RadWordsProcessing) oferece suporte à conversão de DOCX para PDF e está incluído no pacote Telerik. Ele funciona inteiramente em código gerenciado e não requer dependências nativas, mas sua fidelidade de renderização para layouts complexos pode diferir do Word. O Aspose.Words é outra opção consolidada com alta fidelidade e uma API robusta, embora tenha um custo de licença por desenvolvedor semelhante ao do IronPDF.

Como alternativa de código aberto, o DocX da Xceed oferece manipulação de arquivos DOCX, mas não inclui conversão direta para PDF. Os desenvolvedores que precisam de uma opção sem dependências no Linux também podem considerar o LibreOffice sem interface gráfica chamado a partir de um processo, embora isso introduza uma grande dependência binária e sobrecarga na criação de processos.

Comparação de bibliotecas Word-to-PDF for .NET
BibliotecaFidelidade de renderizaçãoEscritório necessárioSuporte para LinuxModelo de Licença
IronPDFAltoNãoSimPor desenvolvedor / SaaS
Aspose.WordsMuito altoNãoSimPor desenvolvedor
Telerik RadWordsMédio-AltoNãoSimSuíte Telerik
Microsoft.Office.InteropPerfeitoSimNãoLicença de escritório
LibreOffice sem interface gráficaMédioNãoSimCódigo aberto (MPL)

A principal vantagem do IronPDF nesta comparação é a combinação de alta fidelidade, nenhuma dependência nativa do Office, suporte para Linux e uma instalação simples baseada em NuGet. Para equipes que já utilizam uma licença IronPDF para conversão de HTML para PDF, o renderizador DOCX está incluído sem custo adicional.

Como o IronPDF lida internamente com o formato de arquivo DOCX?

O IronPDF lê diretamente o formato Office Open XML (OOXML) -- a mesma especificação usada pelo Microsoft Word. Não executa o Word em segundo plano nem utiliza uma ponte de automação COM. Isso significa que a conversão é executada em tempo real dentro da sua aplicação .NET , o que a torna previsível, determinística e segura para cargas de trabalho de servidor multithread.

O pipeline interno analisa o pacote XML OOXML, resolve os recursos incorporados (imagens, fontes, objetos incorporados), aplica a formatação de parágrafo e de execução, define a geometria da página de acordo com as propriedades de seção do documento e rasteriza o resultado em um fluxo de conteúdo PDF. A especificação PDF (ISO 32000) define o formato de saída, garantindo a compatibilidade com todos os principais visualizadores de PDF.

Quais são os seus próximos passos?

Agora você tem uma base sólida para converter documentos do Word em PDF em qualquer aplicação .NET ou ASP.NET . Eis o que você deve explorar a seguir:

Baixe e experimente o IronPDF -- Comece com a versão de avaliação gratuita para testar todos os recursos em seu próprio projeto antes de adquirir uma licença.

  • Leia o guia de conversão de DOCX -- O artigo explicativo sobre o DocxToPdfRenderer aborda casos extremos, opções avançadas e otimização de desempenho em detalhes.
  • Explore a conversão de HTML para PDF -- Se o seu fluxo de trabalho envolve modelos HTML ou visualizações Razor , o IronPDF pode converter HTML em PDF com a mesma interface de API intuitiva.
  • Mesclar e dividir documentos -- Aprenda como combinar vários PDFs em um único arquivo ou dividir um PDF grande em páginas individuais.
  • Adicionar assinaturas digitais -- Para fluxos de trabalho legais ou de conformidade, o IronPDF oferece suporte a assinaturas digitais em PDF usando certificados X.509.
  • Analise as opções de licenciamento -- Explore as opções de licenciamento por desenvolvedor, site e OEM para encontrar o plano que melhor se adapta ao seu modelo de implementação.
  • Navegue pelo blog -- O blog do IronPDF contém tutoriais sobre geração e manipulação de PDFs, integração de OCR e muito mais.
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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.