Como converter um documento do Word para PDF em C#
Criar, editar e gerenciar documentos Word é uma necessidade frequente para muitas aplicações. Enquanto há várias maneiras de criar e editar um documento Word em C#, um dos métodos mais poderosos é usar os serviços de Interop da Microsoft. Com essa ferramenta, você pode lidar com documentos Word programaticamente com muita facilidade.
Editar Documentos Word e DOCX
- Baixe a biblioteca C# para editar documentos Word e DOCX.
- Criar um documento Word vazio em código
- Adicione novo texto ao documento Word
- Edite o texto em um documento novo ou existente.
- Exporte os arquivos DOCX para o local desejado
Pré-requisitos
Antes de configurar o ambiente e começar com o código, certifique-se de que atende aos seguintes pré-requisitos:
- Visual Studio: Certifique-se de que tenha o Visual Studio instalado em sua máquina. Caso contrário, baixe e instale do site oficial da Microsoft.
- Microsoft Word: Como estamos usando Microsoft Interop, você deve ter o MS Word instalado em seu computador. O serviço Interop se comunica com a aplicação Microsoft Word instalada em sua máquina.
- Conhecimento Básico de C#: Compreender conceitos básicos de C# é essencial.
- .NET Framework: Certifique-se de que seu Visual Studio suporta o .NET Framework, já que nossa aplicação será baseada nele.
Preparando o ambiente
Comece abrindo a aplicação Visual Studio. Após abrir, você será recebido com uma tela de boas-vindas.
1. Criar um Novo Aplicativo de Console .NET Framework
- Clique em "Criar um novo projeto".
- Digite "App de Console (.NET Framework)" na caixa de pesquisa.
- Nos resultados, selecione "App de Console (.NET Framework)" e clique no botão "Próximo".
- Defina um nome para seu projeto, em seguida, clique no botão "Criar".
Após esses passos, o Visual Studio gerará um novo aplicativo de console .NET Framework para você. No arquivo Program.cs, você encontrará um modelo básico com um método Main, que é o ponto de entrada para aplicativos de console.
2. Instale Microsoft.Office.Interop.Word usando o Gerenciador de Pacotes NuGet
NuGet é um gerenciador de pacotes para .NET, e está integrado ao Visual Studio. Veja como você pode usá-lo para instalar o pacote Microsoft.Office.Interop.Word:
- No Visual Studio, vá ao menu "Ferramentas".
- Selecione "Gerenciador de Pacotes NuGet" e depois "Gerenciar Pacotes NuGet para a Solução...".
- Na janela do NuGet, clique na guia "Procurar".
- Na caixa de pesquisa, digite
Microsoft.Office.Interop.Worde pressione enter. - Nos resultados da pesquisa, selecione o pacote
Microsoft.Office.Interop.Word. - No lado direito, certifique-se de que seu projeto de aplicativo de console está marcado, então clique no botão "Instalar".

O Visual Studio agora instalará o pacote e adicionará uma referência a ele em seu projeto. Este pacote contém os assemblies e ferramentas necessários para interagir com MS Word a partir da sua aplicação C#.
Apresentando IronWord: Uma Alternativa Superior ao Interop
Enquanto Interop oferece potentes capacidades para trabalhar com Word e Excel, ele tem limitações. Entra em cena o IronWord, uma biblioteca versátil otimizada para desenvolvedores .NET. IronWord oferece uma experiência mais suave do que o Interop, especialmente para tarefas de edição de documentos Word. Ele não apenas garante compatibilidade e desempenho, mas também simplifica tarefas complexas com métodos intuitivos. Para facilitar a comparação, vou fornecer trechos de código IronWord para cada caso de uso após MS Word, usando a versão IronWord 2024.1.2.
Abrindo um Documento Word Existente
Frequentemente, você pode precisar editar documentos Word existentes, o exemplo a seguir mostra como fazer isso em C#:
// Create an instance of the Word Application
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Open a Word document with the specified file path
var WordDoc = WordApp.Documents.Open(@"path_to_your_document.docx");' Create an instance of the Word Application
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
' Open a Word document with the specified file path
Dim WordDoc = WordApp.Documents.Open("path_to_your_document.docx")No código acima, substitua path_to_your_document.docx pelo caminho do seu arquivo docx.
Usando IronWord
Abra um documento Word usando IronWord.
// Open a Word document with the specified file path using IronWord
WordDocument doc = new WordDocument(@"path_to_your_document.docx");' Open a Word document with the specified file path using IronWord
Dim doc As New WordDocument("path_to_your_document.docx")Criando um Novo Documento Word
Para criar documentos Word do zero:
// Initialize a new instance of the Word Application
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Add a new Word document
var WordDoc = WordApp.Documents.Add();' Initialize a new instance of the Word Application
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
' Add a new Word document
Dim WordDoc = WordApp.Documents.Add()Este trecho de código cria um novo Documento Word que você pode escrever e editar usando C#.
Usando IronWord
// Create a new, empty Word document using IronWord
WordDocument doc = new WordDocument();' Create a new, empty Word document using IronWord
Dim doc As New WordDocument()Adicionando Texto ao Documento Word
Para adicionar um novo parágrafo de texto:
// Add a new paragraph to the document
WordDoc.Paragraphs.Add();
// Assign text to the newly added paragraph
WordDoc.Paragraphs[1].Range.Text = "This is the first paragraph.";' Add a new paragraph to the document
WordDoc.Paragraphs.Add()
' Assign text to the newly added paragraph
WordDoc.Paragraphs(1).Range.Text = "This is the first paragraph."O método Paragraphs.Add() adiciona um novo parágrafo ao documento Word e a propriedade Range.Text atribui um novo texto a ele.
Usando IronWord
// Add a new text to the document using IronWord
doc.AddText("Add text using IronWord");' Add a new text to the document using IronWord
doc.AddText("Add text using IronWord")Editando Texto Existente
Para este tutorial, vamos mudar o primeiro parágrafo:
// Edit the text of the first paragraph
WordDoc.Paragraphs[1].Range.Text = "This is the edited first paragraph.";' Edit the text of the first paragraph
WordDoc.Paragraphs(1).Range.Text = "This is the edited first paragraph."Você também pode adicionar e editar outros elementos no documento Word usando métodos similares.
Usando IronWord
// Edit the text of the first paragraph using IronWord
doc.Paragraphs[0].TextRuns[0].Text = "This is the edited first paragraph.";' Edit the text of the first paragraph using IronWord
doc.Paragraphs(0).TextRuns(0).Text = "This is the edited first paragraph."Salvando e Fechando o Documento
Uma vez que você tenha feito as edições desejadas:
// Save the document to a specified path
WordDoc.SaveAs(@"path_where_you_want_to_save.docx");
// Close the document and quit the application
WordDoc.Close();
WordApp.Quit();' Save the document to a specified path
WordDoc.SaveAs("path_where_you_want_to_save.docx")
' Close the document and quit the application
WordDoc.Close()
WordApp.Quit()Substitua path_where_you_want_to_save.docx pelo caminho desejado.
Usando IronWord
// Save the document to the desired path using IronWord
doc.SaveAs(@"path_where_you_want_to_save.docx");' Save the document to the desired path using IronWord
doc.SaveAs("path_where_you_want_to_save.docx")Código Completo e Exemplo
Vamos juntar tudo. Aqui está um exemplo de código completo que demonstra como abrir um documento Word existente, editá-lo e depois salvar as alterações:
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Create a new Word document
var WordDoc = WordApp.Documents.Add();
// Add new text
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs[1].Range.Text = "This is the first paragraph.";
// Edit the first paragraph
WordDoc.Paragraphs[1].Range.Text = "This is the edited first paragraph.";
// Save and close
WordDoc.SaveAs(@"path_where_you_want_to_save.docx");
WordDoc.Close();
WordApp.Quit();Dim WordApp = New Microsoft.Office.Interop.Word.Application()
' Create a new Word document
Dim WordDoc = WordApp.Documents.Add()
' Add new text
WordDoc.Paragraphs.Add()
WordDoc.Paragraphs(1).Range.Text = "This is the first paragraph."
' Edit the first paragraph
WordDoc.Paragraphs(1).Range.Text = "This is the edited first paragraph."
' Save and close
WordDoc.SaveAs("path_where_you_want_to_save.docx")
WordDoc.Close()
WordApp.Quit()Usando IronWord
O exemplo de código completo usando IronWord é conciso. IronWord utiliza trechos de código concisos para editar arquivos DOCX.
// Create an empty Word document
WordDocument doc = new WordDocument();
// Add new text
doc.AddText("This is the first paragraph.");
// Edit the text
doc.Paragraphs[0].TextRuns[0].Text = "This is the edited first paragraph.";
// Export DOCX
doc.SaveAs(@"path_where_you_want_to_save.docx");' Create an empty Word document
Dim doc As New WordDocument()
' Add new text
doc.AddText("This is the first paragraph.")
' Edit the text
doc.Paragraphs(0).TextRuns(0).Text = "This is the edited first paragraph."
' Export DOCX
doc.SaveAs("path_where_you_want_to_save.docx")Conclusão
No domínio de manipular documentos Word e Excel dentro de aplicações .NET, há muitas escolhas. Embora os serviços Interop da Microsoft tenham sido uma escolha popular para muitos, o surgimento de soluções como IronWord significa uma mudança para ferramentas mais eficientes e amigáveis ao usuário.

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.
Artigos relacionados

