Ir para o conteúdo do rodapé
USANDO IRONWORD

Como converter um documento do Word para PDF em C#

Converter documentos programaticamente tornou-se uma característica essencial em muitas aplicações. Especialmente no mundo dos negócios, converter documentos do Word para arquivos PDF é uma tarefa rotineira. Felizmente, com C# e Microsoft Interop, você pode converter arquivos do Word para PDF de forma contínua. Este tutorial abordará o processo de conversão programática de arquivos Word para PDF usando C#.

Pré-requisitos

Antes de mergulhar no código para converter .DOCX para PDF usando C#, é crucial garantir que você tenha o ambiente necessário configurado. Abaixo estão os pré-requisitos de que você precisa:

Instalação do Microsoft Word

Certifique-se de ter o Microsoft Word instalado em seu computador. Os serviços de Interop usarão as capacidades incorporadas do Word para lidar com o documento do Word e a conversão para PDF.

Visual Studio

Uma versão do Visual Studio é necessária para criar, compilar e executar o programa C#. Se você ainda não possui o Visual Studio, você pode baixar a versão comunitária, que é gratuita, no site oficial da Microsoft.

Instalar pacote Microsoft.Office.Interop.Word

Este pacote é essencial para fornecer as funcionalidades necessárias para seu programa C# interagir com documentos do Word. Ele será instalado posteriormente usando o Gerenciador de Pacotes NuGet, mas é bom saber sua importância no processo de conversão.

Documento do Word para Conversão

Prepare um documento Word ou arquivo .docx que você gostaria de converter. Certifique-se de saber seu caminho no seu computador, pois você precisará especificá-lo no programa C#.

Permissões Suficientes

Certifique-se de ter permissões para ler o arquivo do Word e gravar o arquivo PDF resultante no diretório desejado. Executar o Visual Studio como administrador às vezes pode resolver problemas relacionados a permissões.

Com esses pré-requisitos, você pode configurar seu ambiente e converter seus documentos do Word em arquivos PDF.

Preparando o ambiente

  1. Abra seu Visual Studio.
  2. Crie um novo aplicativo de console C#.
  3. Vá para Gerenciador de Pacotes NuGet > Gerenciar Pacotes NuGet para a Solução.
  4. Procure por "Microsoft.Office.Interop.Word" e instale-o. Este pacote permitirá que nossa aplicação se comunique com o Word e converta arquivos do Word.

Como Converter Word para PDF em C#: Figura 1 - Abra o Visual Studio e crie um novo projeto de Aplicativo de Console. Vá para o Gerenciador de Pacotes NuGet para a Solução. Pesquise por Microsoft.Office.Interop.Word e instale-o. Este pacote ajudará nosso aplicativo de console a interagir com o Word e também a converter arquivos do Word.

Código Exemplo para Converter Documento Word para PDF

Para converter um documento Word para PDF usando C#, utilizaremos as capacidades dos serviços de Interop da Microsoft. O trecho de código abaixo realiza essa tarefa, e uma explicação detalhada segue.

using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

        // Output a success message
        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

        // Output a success message
        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
$vbLabelText   $csharpLabel

Explicação do código

O início do nosso código inclui um alias de namespace crucial Word para referenciar facilmente o namespace Microsoft.Office.Interop.Word. O namespace System fornece classes fundamentais para a programação em C#, e é um elemento básico em quase todas as aplicações C#.

A ação real começa dentro do método Main. Primeiro, criamos uma nova instância da aplicação Word usando new Word.Application(). Esta etapa é semelhante a iniciar o MS Word, mas tudo acontece em segundo plano, sem ser visto pelo usuário. Uma vez que a instância da aplicação é inicializada, instruímos a abrir um documento Word com o método wordApp.Documents.Open. Especificar o caminho para o seu documento Word no lugar de "path_to_your_word_file.docx" é crucial.

Agora, com o documento aberto, determinamos onde queremos que nosso PDF seja salvo. Isso é especificado na variável outputPath. É essencial notar que o caminho deve ser ajustado para onde você gostaria que seu arquivo PDF convertido residisse.

A magia da conversão do documento Word para PDF acontece com a linha wordDocument.ExportAsFixedFormat(...). Os serviços de Interop fornecem um método embutido, permitindo a conversão sem esforço. O método aceita dois argumentos principais: o caminho onde o PDF deve ser salvo e o formato de exportação, que no nosso caso é PDF.

Após a conversão, fechar os recursos que usamos é uma boa prática. Assim, wordDocument.Close() garante que o documento que abrimos agora está fechado, enquanto wordApp.Quit() garante que a instância da aplicação Word que lançamos em segundo plano é encerrada.

Por fim, nosso programa comunica o resultado para o usuário com uma simples mensagem no console. O método Console.WriteLine() fornece feedback, sinalizando que o processo de conversão foi executado com sucesso.

Assim, Microsoft.Office.Interop.Word oferece uma solução adequada para manipular e converter documentos Word.

Word para PDF C# Usando IronPDF e IronWord

Se você está desenvolvendo uma aplicação .NET que envolve automação de documentos, uma tarefa comum que enfrentará é converter documentos Word para o formato PDF. Seja você trabalhando com modelos de documentos .docx, faturas, relatórios ou contratos, converter arquivos DOCX para PDF garante formatação consistente, entrega segura e compatibilidade entre plataformas.

Este artigo explica como converter facilmente Word para PDF usando duas ferramentas poderosas da IronSoftware: IronPDF e IronWord. Você aprenderá como elas diferem, quando usar cada ferramenta e como implementá-las em C# para geração rápida e confiável de Word para PDF.

Por que Converter Word para PDF em .NET?

Antes de mergulharmos em como você pode usar essas bibliotecas para realizar essa tarefa, vamos primeiro dar uma olhada em por que exatamente converter seus documentos Word para PDF pode elevar seu ambiente de trabalho e documentos.

Então, por que você deveria converter arquivos DOCX para o formato PDF?

  • Garante consistência visual em várias plataformas
  • Bloqueia a formatação e previne edições não intencionais
  • É ideal para arquivar documentos legais ou financeiros
  • Facilita a impressão e o compartilhamento de seus arquivos
  • É frequentemente o formato exigido para muitos fluxos de trabalho empresariais

Visão Geral das Ferramentas: IronPDF e IronWord

IronWord

IronWord

IronWord é uma biblioteca .NET projetada especificamente para ler e editar documentos Word. Com IronWord, você pode carregar documentos .docx e editá-los diretamente para atender às suas necessidades, sem a necessidade de Interop do Microsoft Office ou instalações do Microsoft Word, antes de usar o IronPDF para lidar com a conversão de DOCX para PDF.

Vamos agora ver o IronWord em ação, criando um novo objeto de documento e adicionando texto a ele:

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
$vbLabelText   $csharpLabel

Documento Word de Saída

Saída do Word

IronPDF

IronPDF

O IronPDF é uma biblioteca PDF completa for .NET, repleta de ferramentas para a geração e manipulação de PDFs. Enquanto uma de suas características principais é a conversão de alta qualidade de HTML para PDF, ele também é capaz de lidar com tarefas de conversão de Word para PDF em C#. Para desenvolvedores .NET que procuram gerar PDFs ou editar documentos PDF existentes, o IronPDF oferece tudo o que você precisa.

Então, quão fácil é usar o IronPDF? Vamos ver o exemplo de código a seguir para entender como ele funciona ao converter documentos Word para PDF:

using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
$vbLabelText   $csharpLabel

Saída em PDF

Saída do PDF

Fluxo de Trabalho Combinado: IronWord e IronPDF

Embora o IronWord não possa exportar diretamente para PDF, ele é perfeito para preparar documentos Word programaticamente. Aqui está um fluxo comum:

Word to PDF Pipeline in C#

  1. Carregar ou criar um documento Word com o IronWord
  2. Editar ou preencher dados dinâmicos (por exemplo, substituir tokens)
  3. Salvar o arquivo .docx
  4. Usar o IronPDF para converter o documento para o formato PDF
  5. Depois, você pode usar o IronPDF para fazer quaisquer ajustes adicionais no PDF recém-gerado, como adicionar marcas d'água ou anotações

Este fluxo de trabalho híbrido oferece flexibilidade máxima com dependências mínimas, ideal tanto para aplicativos web quanto para serviços em nuvem e aplicativos desktop.

Então, como isso fica na prática?

Usando o IronWord para Criação de Documentos

Primeiro, usaremos o IronWord para criar um exemplo de documento Word.

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
$vbLabelText   $csharpLabel

Saída

Saída do documento Word

Usando o IronPDF para Conversão de Word para PDF C

Em apenas 3 linhas simples de código, poderemos facilmente converter nosso documento Word para PDF.

using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

Saída

Saída do PDF

Assim, fomos capazes de criar um documento Word personalizado com o IronWord, antes de implementar o IronPDF para convertê-lo em formato PDF em apenas algumas linhas de código.

Pronto para Implantação: Funciona em Todos os Lugares

Tanto o IronPDF quanto o IronWord funcionam em:

  • ASP.NET Core e Blazor
  • Azure App Services e Azure Functions
  • Compatível com .NET framework, .NET 6, 7, 8, 9 e .NET Core
  • Facilmente integrado em ambientes Linux, Docker e servidores
  • Aplicativos desktop (WPF/WinForms) e console

Nenhuma instalação do Office é necessária. Sem interoperação COM. Apenas bibliotecas .NET limpas e modernas.

Casos de uso comuns

Uso IronWord IronPDF
Carregar/editar arquivos .docx Sim No
Substituir texto/tokens no Word Sim No
Salvar documentos .docx Sim No
Converter HTML para PDF Não Yes
Gerar saída final em PDF Não Yes
Renderização no lado do servidor Sim Sim

Dica Profissional: Usando Visualizações Razor para Produzir Documentos PDF Estilo Word

Mesmo que você não esteja usando o IronWord, o IronPDF suporta templates Razor diretamente. Você pode usar Páginas Razor para produzir layouts com estilo Word usando CSS, e depois renderizar para PDF:

@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
$vbLabelText   $csharpLabel

O IronPDF pode renderizar isso em um PDF polido, pronto para impressão.

Resumo: Desbloqueie Todo o Poder do Word para PDF em .NET

Ao incluir o IronPDF e o IronWord em seus projetos .NET, você obtém um fluxo de trabalho poderoso e livre de Office para lidar com documentos no .NET. Crie documentos Word dinâmicos com estilos e tabelas personalizados ou converta seus documentos em arquivos PDF com precisão de pixels. Não importa a tarefa, com essas bibliotecas você sempre terá poderosas ferramentas para lidar com tarefas de Word e PDF ao seu alcance.

Essa combinação é perfeita para gerar faturas, relatórios, contratos e qualquer documento que comece no Word, mas precise terminar em um formato PDF seguro e consistente.

Se você está criando software de desktop ou implantando no Azure, IronWord e IronPDF lhe dão controle total sobre a automação de documentos - rápido, confiável e pronto para produção. Se você quiser ver mais dessas bibliotecas em ação, não deixe de conferir sua documentação, onde você pode encontrar muitos exemplos de código tanto para IronPDF quanto para IronWord para aprender mais sobre seus recursos e como funcionam.

Comece hoje mesmo!

Instale ambas as bibliotecas através do Gerenciador de Pacotes NuGet para implementá-las rapidamente nos seus projetos do Visual Studio. Quer experimentar antes de comprar? Baixe hoje mesmo a versão de teste gratuita do IronPDF e IronWord e comece a criar documentos poderosos imediatamente.

Perguntas frequentes

Como posso converter um documento do Word para PDF usando C#?

Você pode usar o pacote Microsoft.Office.Interop.Word para converter documentos do Word em PDF em C#. Isso envolve criar uma instância do aplicativo Word, carregar o documento e usar o método ExportAsFixedFormat para salvá-lo como PDF.

Qual é a função do método ExportAsFixedFormat na conversão de Word para PDF?

O método ExportAsFixedFormat em Microsoft.Office.Interop.Word é usado para exportar um documento do Word como um arquivo PDF, fornecendo um formato fixo adequado para compartilhamento e impressão.

Quais são os pré-requisitos para converter documentos do Word em PDF em C#?

Para converter documentos do Word para PDF em C#, você precisa ter o Microsoft Word instalado, o Visual Studio e o pacote Microsoft.Office.Interop.Word disponível através do Gerenciador de Pacotes NuGet.

Por que é importante fechar o aplicativo Word após a conversão?

Fechar o aplicativo Word após a conversão é essencial para liberar recursos do sistema e evitar vazamentos de memória. Isso garante que o aplicativo não permaneça aberto em segundo plano, consumindo recursos desnecessariamente.

Qual é a alternativa mais eficiente para lidar com arquivos do Excel do que o Microsoft Interop?

IronXL é uma alternativa mais eficiente para manipular arquivos Excel em C#. Não requer a instalação do Microsoft Office e oferece desempenho mais rápido com uma ampla gama de formatos de arquivo suportados.

Como faço para instalar a biblioteca IronXL para uso em minha aplicação C#?

Para instalar o IronXL em sua aplicação C#, utilize o console do Gerenciador de Pacotes NuGet e execute o comando Install-Package IronXl.Excel .

Quais formatos de arquivo o IronXL consegue processar ao trabalhar com arquivos do Excel?

O IronXL consegue converter e processar arquivos Excel em diversos formatos, incluindo XLS, XLSX, XLSM, CSV, TSV, JSON, XML, HTML, além de matrizes binárias e de bytes.

Quais são as vantagens de usar o IronXL em vez dos serviços de interoperabilidade da Microsoft?

O IronXL oferece vantagens como a dispensa da instalação do Microsoft Office, velocidades de processamento mais rápidas, facilidade de uso e suporte a uma gama mais ampla de formatos de arquivo em comparação com os serviços de interoperabilidade da Microsoft.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me