Como adicionar marca d'água a documentos do Word em C# usando IronWord
Nas aplicações modernas, é crucial gerar documentos Word de forma rápida para diversos fins como cobrança, faturas, cartas, etc. O recurso de documento modelo do Microsoft Word oferece uma maneira poderosa de garantir consistência e eficiência. No entanto, preencher manualmente esses modelos pode ser demorado e sujeito a erros. É aí que entra IronWord da Iron Software—uma robusta biblioteca .NET projetada para automatizar o processo de preenchimento de modelos Word programaticamente. Neste artigo, iremos mostrar como usar IronWord para preencher um modelo de documento Word e fornecer um exemplo prático para ilustrar o processo.
Como Gerar um Documento Word Usando um Modelo Word em C#
- Crie um novo projeto no Microsoft Visual Studio.
- Instale IronWord através do gerenciador de pacotes NuGet.
- Crie um documento Modelo Word.
- Insira dados em um documento Word e salve como um novo arquivo.
- Adicione efeitos de texto ao documento Word gerado.
O que é IronWord?
IronWord é uma biblioteca .NET da Iron Software projetada para facilitar a criação, manipulação e gerenciamento de documentos Microsoft Word programaticamente. Ela permite que os desenvolvedores automatizem o processo de geração de documentos Word, facilitando a criação dinâmica de relatórios, faturas, cartas e outros tipos de documentos dentro de suas aplicações.
Principais Recursos do IronWord
1. C# Preencher Modelo de Word e Manipulação
IronWord permite o uso de modelos do Word para definir marcadores de posição em um documento modelo e substituí-los por dados reais em tempo de execução.
2. Manipulação de Texto
Você pode facilmente inserir, substituir ou excluir texto dentro de um documento Word.
3. Formatação
A biblioteca suporta várias opções de formatação, incluindo estilos de fonte, tamanhos, cores e alinhamento de parágrafos.
4. Tabelas e Imagens
IronWord permite inserir e manipular tabelas e imagens dentro de seus documentos.
5. Compatibilidade
Funciona perfeitamente com diferentes versões do Microsoft Word, garantindo compatibilidade e facilidade de uso.
Casos de uso
- Geração de Relatórios: Gere automaticamente relatórios detalhados com dados dinâmicos.
- Criação de Faturas: Crie faturas profissionais preenchendo os detalhes do cliente e da transação.
- Gestão de Contratos: Automatize a criação de contratos com informações personalizadas.
- Cartas e Avisos: Gere cartas e avisos personalizados para clientes ou funcionários.
O IronWord simplifica o trabalho com documentos Word em aplicações .NET, tornando-se uma ferramenta valiosa para desenvolvedores que desejam automatizar tarefas de geração e gestão de documentos.
Pré-requisitos
Um lembrete rápido para garantir que você tenha o seguinte antes de começarmos:
- Visual Studio está instalado em sua máquina.
- O último .NET Framework está instalado.
Passo 1: Crie um novo projeto no Microsoft Visual Studio.
Agora, vamos começar criando um novo projeto no Visual Studio.

Selecione o modelo de aplicação de console na tela abaixo.

Forneça o nome e a localização do projeto.

Selecione a versão do .NET, de preferência a mais recente com suporte, e clique em Criar.

Passo 2: Instale o Gerenciador de Pacotes NuGet do IronWord.
Instale o pacote NuGet do IronWord a partir do gerenciador de pacotes NuGet, conforme abaixo no Visual Studio.

Alternativamente, instale-o usando a CLI diretamente com o comando abaixo.
Passo 3: Crie um documento modelo do Word.
Agora, gere um documento modelo do Word com uma ou duas páginas para ser usado durante o processo de geração do documento Word.
Dear {Name},
Thanks for purchasing {product}. We are happy to serve you always. Your application dated {Date} has been approved. The product comes with an expiry date of {expiryDate}. Renew the product on or before the expiry date.
Feel free to contact {phone} or {email} for further queries.
Address: {Address}
Thank you,
{Sender}
Agora, salve o documento acima como Template.docx.
Passo 4: Inserindo dados em um documento Word e salvando como um novo arquivo.
using System;
using System.Collections.Generic;
using IronWord;
class Program
{
static void Main()
{
// Set the license key for IronWord
License.LicenseKey = "your key";
// Define paths for the template and the output file
string templatePath = "Template.docx";
string outputPath = "FilledDocument.docx";
// Create a new instance of the WordDocument class using the template path
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "IronSoftware" },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders in the document with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
}
// Save the filled document
doc.Save(outputPath);
// Notify the user that the document has been saved successfully
Console.WriteLine("Document filled and saved successfully.");
}
}Imports System
Imports System.Collections.Generic
Imports IronWord
Friend Class Program
Shared Sub Main()
' Set the license key for IronWord
License.LicenseKey = "your key"
' Define paths for the template and the output file
Dim templatePath As String = "Template.docx"
Dim outputPath As String = "FilledDocument.docx"
' Create a new instance of the WordDocument class using the template path
Dim doc As New WordDocument(templatePath)
' Define a dictionary of placeholders and their replacements
Dim replacements = New Dictionary(Of String, String) From {
{"{Name}", "John Doe"},
{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
{"{Address}", "123 Iron Street, Iron Software"},
{"{product}", "IronWord"},
{"{Sender}", "IronSoftware"},
{"{phone}", "+123 456789"},
{"{email}", "sale@ironsoftware.com"},
{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
}
' Replace placeholders in the document with actual data
For Each replacement In replacements
doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
Next replacement
' Save the filled document
doc.Save(outputPath)
' Notify the user that the document has been saved successfully
Console.WriteLine("Document filled and saved successfully.")
End Sub
End ClassExplicação
O código fornecido demonstra o uso da biblioteca IronWord para preencher um modelo de documento Word com dados específicos. Aqui está uma explicação concisa:
- Configuração da Licença: O código começa estabelecendo a chave de licença para o IronWord para ativar sua funcionalidade.
- Caminhos de Arquivo: Especifica os caminhos para o modelo Word (
Template.docx) e o arquivo de saída (FilledDocument.docx). - Criar Instância do Documento: Uma instância de
WordDocumenté criada usando a referência ao caminho do modelo. - Definir Substituições: Um dicionário é criado onde as chaves representam os marcadores de posição no modelo, e os valores representam os dados a serem inseridos.
- Substituir Marcadores de Posição: Itera pelo dicionário, substituindo cada marcador de posição no documento com os dados correspondentes.
- Salvar Documento: Finalmente, o documento atualizado é salvo no caminho de saída especificado.
- Mensagem de Conclusão: Uma mensagem é impressa para confirmar que o documento foi preenchido e salvo com sucesso.
Saída

Passo 5: Adicione efeitos de texto ao documento Word gerado.
IronWord também permite adicionar vários efeitos de texto, conforme mostrado na tabela abaixo.
No exemplo seguinte, adicionamos efeitos de texto à palavra "Iron Software".
using System;
using System.Collections.Generic;
using IronWord;
using IronWord.Models;
class Program
{
static void Main()
{
// Set the license key for IronWord
License.LicenseKey = "your key";
// Define paths for the template and the output file
string templatePath = "Template.docx";
string outputPath = "glowEffect.docx";
// Create a new instance of the WordDocument class
WordDocument doc = new WordDocument(templatePath);
// Define a dictionary of placeholders and their replacements
var replacements = new Dictionary<string, string>
{
{ "{Name}", "John Doe" },
{ "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
{ "{Address}", "123 Iron Street, Iron Software" },
{ "{product}", "IronWord" },
{ "{Sender}", "Sale," },
{ "{phone}", "+123 456789" },
{ "{email}", "sale@ironsoftware.com" },
{ "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
};
// Replace placeholders in the document with actual data
foreach (var replacement in replacements)
{
doc.Texts.ForEach(x => x.Replace(replacement.Key, replacement.Value));
}
// Create and configure text style methods with a glow effect
TextStyle textStyle = new TextStyle
{
TextEffect = new TextEffect()
{
GlowEffect = new Glow()
{
GlowColor = IronWord.Models.Color.Aqua,
GlowRadius = 10,
},
}
};
// Add styled text to the document
doc.AddText(" IronSoftware").Style = textStyle;
// Save the document with the glow effect
doc.SaveAs(outputPath);
// Notify the user that the document has been saved successfully
Console.WriteLine("Styled document saved successfully.");
}
}Imports System
Imports System.Collections.Generic
Imports IronWord
Imports IronWord.Models
Friend Class Program
Shared Sub Main()
' Set the license key for IronWord
License.LicenseKey = "your key"
' Define paths for the template and the output file
Dim templatePath As String = "Template.docx"
Dim outputPath As String = "glowEffect.docx"
' Create a new instance of the WordDocument class
Dim doc As New WordDocument(templatePath)
' Define a dictionary of placeholders and their replacements
Dim replacements = New Dictionary(Of String, String) From {
{"{Name}", "John Doe"},
{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
{"{Address}", "123 Iron Street, Iron Software"},
{"{product}", "IronWord"},
{"{Sender}", "Sale,"},
{"{phone}", "+123 456789"},
{"{email}", "sale@ironsoftware.com"},
{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
}
' Replace placeholders in the document with actual data
For Each replacement In replacements
doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
Next replacement
' Create and configure text style methods with a glow effect
Dim textStyle As New TextStyle With {
.TextEffect = New TextEffect() With {
.GlowEffect = New Glow() With {
.GlowColor = IronWord.Models.Color.Aqua,
.GlowRadius = 10
}
}
}
' Add styled text to the document
doc.AddText(" IronSoftware").Style = textStyle
' Save the document with the glow effect
doc.SaveAs(outputPath)
' Notify the user that the document has been saved successfully
Console.WriteLine("Styled document saved successfully.")
End Sub
End ClassExplicação
O código revisado ilustra o uso da biblioteca IronWord para preencher um modelo de documento Word, estilizar texto e salvar o documento modificado. Aqui está uma explicação concisa:
- Configuração da Licença: Estabelece a chave de licença do IronWord para habilitar a funcionalidade.
- Caminhos de Arquivo: Especifica os caminhos para o modelo (
Template.docx) e o arquivo de saída (glowEffect.docx). - Criar Instância do Documento: Inicializa uma instância
WordDocumentusando o caminho do modelo fornecido. - Definir Substituições: Cria um dicionário de marcadores de posição e seus valores de substituição correspondentes.
- Substituir Marcadores de Posição: Itera pelo dicionário, substituindo marcadores de posição no documento com dados reais.
- Configurar Estilo de Texto: Define um estilo de texto com efeito de brilho, especificando cor e raio.
- Adicionar Texto Estilizado: Adiciona texto com o estilo configurado ao documento.
- Salvar Documento: Salva o documento atualizado com um novo nome (
glowEffect.docx), refletindo o estilo de texto aplicado. - Saída do Console: Uma mensagem é impressa para confirmar que o documento estilizado foi salvo.
Saída

Licenciamento do IronWord
IronWord . Uma vez que os dados são inseridos, a licença é enviada para o ID de email fornecido. Essa licença precisa ser colocada no início do código, antes de usar a biblioteca IronWord, como abaixo.
License.LicenseKey = "your Key Here";License.LicenseKey = "your Key Here"Conclusão
IronWord oferece várias vantagens para a geração de documentos Word usando modelos. Simplifica a automação da criação de documentos, permitindo que os desenvolvedores preencham modelos programaticamente com dados específicos, reduzindo a necessidade de entrada manual. Isso aumenta a eficiência e precisão, uma vez que o risco de erro humano é minimizado. Além disso, IronWord ajuda a manter a consistência entre os documentos, garantindo que cada arquivo gerado siga o mesmo formato e estrutura. Automatizar tarefas repetitivas economiza tempo e recursos, tornando-o ideal para produzir rapidamente grandes volumes de documentos. IronWord aumenta a produtividade e simplifica os fluxos de trabalho em cenários que exigem geração frequente ou complexa de documentos.
Seguindo os passos descritos neste artigo e aproveitando o exemplo fornecido com IronWord, você pode gerenciar eficientemente suas necessidades de geração de documentos e agilizar seu fluxo de trabalho.

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

