Como executar o IronWord com .NET no Azure

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWord é uma poderosa biblioteca .NET para criar, editar e ler documentos do Word programaticamente. Ele funciona perfeitamente em vários serviços do Azure, incluindo o Azure App Services, o Azure Functions e o Azure Container Instances.

Instalando o IronWord

Comece instalando o pacote NuGet IronWord do repositório oficial do NuGet :

Install-Package IronWord

Considerações sobre hospedagem no Azure

Como escolher o nível de serviço do Azure adequado

O IronWord tem melhor desempenho em planos de serviço do Azure que oferecem computação consistente. disponibilidade. Para a maioria dos casos de uso de pequeno a médio porte, o Plano Básico (B1) do Serviço de Aplicativos é suficiente. Se o seu aplicativo processa um grande volume de documentos do Word ou executa Para tarefas de formatação complexas, considere atualizar para o plano Standard (S1) ou superior. Evite gargalos de desempenho.

Runtimes .NET suportados e compatibilidade

O IronWord funciona imediatamente com as seguintes estruturas comumente usadas em soluções hospedadas no Azure:

  • .NET 6+ (LTS recomendado)
  • .NET Core 3.1
  • .NET Standard 2.1

Isso oferece flexibilidade para implantar o IronWord em vários serviços do Azure, como Serviços de Aplicativos, Funções do Azure e contêineres Docker, sem se preocupar com a compatibilidade.

Implantação em Docker no Azure

Implantação em contêineres com IronWord

Se você busca o máximo controle sobre seu ambiente de execução, considere implantar o IronWord dentro de um contêiner Docker no Azure Container Instances (ACI) ou no Azure Kubernetes Service (AKS). Isso permite que você:

  • Pré-carregar modelos ou recursos estáticos
  • Configurar as definições de processamento de documentos
  • Otimizar o desempenho no nível do sistema operacional

Para começar, use uma imagem base como mcr.microsoft.com/dotnet/aspnet:6.0 ou 7.0 e adicione o IronWord via NuGet ou inclusão manual de DLL.

Sem servidor com o Azure Functions

Utilizando o IronWord no Azure Functions

O IronWord é totalmente compatível com o Azure Functions v4 executado no .NET 6 ou superior. Isso possibilita a geração de documentos leves e orientados a eventos — perfeito para cenários como:

  • Criação de relatórios sob demanda via HTTP
  • Gerar documentos do Word a partir de formulários enviados
  • Converter dados estruturados para o formato .docx

Exemplo de Função do Azure: Gerar documento do Word sob demanda

Abaixo, um exemplo prático de uma Função do Azure que cria e retorna um documento do Word em resposta a uma solicitação HTTP:

using System.Net;
using System.Net.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
using System.Net.Http.Headers;
using IronWord;
using IronWord.Models;
using System.IO;
using System.Threading.Tasks;

public static class WordFunction
{
    [FunctionName("GenerateWordDoc")]
    public static HttpResponseMessage Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("Processing request to generate Word document...");

        // Set your IronWord license key
        IronWord.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Create and populate Word document
        var doc = new WordDocument();
        Paragraph para1 = new Paragraph(new TextContent("This Word document was generated by IronWord in an Azure Function."));
        Paragraph para2 = new Paragraph(new TextContent($"Timestamp: {System.DateTime.UtcNow}"));
        doc.AddParagraph(para1);
        doc.AddParagraph(para2);

        // Save to temporary file
        string tempPath = Path.GetTempFileName().Replace(".tmp", ".docx");
        doc.SaveAs(tempPath);

        // Read the file bytes
        byte[] fileBytes = File.ReadAllBytes(tempPath);

        // Optionally delete the temp file
        File.Delete(tempPath);

        // Build the response with the document as an attachment
        var response = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(fileBytes)
        };
        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = $"IronWord_{System.DateTime.UtcNow:yyyyMMdd_HHmmss}.docx"
        };
        response.Content.Headers.ContentType = new MediaTypeHeaderValue(
            "application/vnd.openxmlformats-officedocument.wordprocessingml.document");

        return response;
    }
}
using System.Net;
using System.Net.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
using System.Net.Http.Headers;
using IronWord;
using IronWord.Models;
using System.IO;
using System.Threading.Tasks;

public static class WordFunction
{
    [FunctionName("GenerateWordDoc")]
    public static HttpResponseMessage Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("Processing request to generate Word document...");

        // Set your IronWord license key
        IronWord.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Create and populate Word document
        var doc = new WordDocument();
        Paragraph para1 = new Paragraph(new TextContent("This Word document was generated by IronWord in an Azure Function."));
        Paragraph para2 = new Paragraph(new TextContent($"Timestamp: {System.DateTime.UtcNow}"));
        doc.AddParagraph(para1);
        doc.AddParagraph(para2);

        // Save to temporary file
        string tempPath = Path.GetTempFileName().Replace(".tmp", ".docx");
        doc.SaveAs(tempPath);

        // Read the file bytes
        byte[] fileBytes = File.ReadAllBytes(tempPath);

        // Optionally delete the temp file
        File.Delete(tempPath);

        // Build the response with the document as an attachment
        var response = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(fileBytes)
        };
        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = $"IronWord_{System.DateTime.UtcNow:yyyyMMdd_HHmmss}.docx"
        };
        response.Content.Headers.ContentType = new MediaTypeHeaderValue(
            "application/vnd.openxmlformats-officedocument.wordprocessingml.document");

        return response;
    }
}
$vbLabelText   $csharpLabel

Explicação do código:

  1. Definimos uma Função do Azure com o nome "GenerateWordDoc".
  2. A função é acionada por uma solicitação HTTP GET ou POST e registra uma mensagem quando inicia o processamento.
  3. Especificamos a chave de licença do IronWord definindo IronWord(substitua "YOUR-LICENSE-KEY" pela sua chave real).
  4. Um novo documento do Word é criado usando a API do IronWord.
  5. Dois parágrafos são adicionados ao documento — um com texto estático e outro mostrando o carimbo de data/hora UTC atual.
  6. O documento é salvo em um arquivo .docx temporário no servidor usando doc.SaveAs(tempPath).
  7. O arquivo salvo é lido em uma matriz de bytes usando File.ReadAllBytes, preparando-o para download.
  8. O arquivo temporário é apagado imediatamente após a leitura para manter o sistema limpo.
  9. Uma HttpResponseMessage é criada, contendo o conteúdo em bytes do documento como um anexo para download.
  10. O cabeçalho Content-Disposition define o nome do arquivo de download usando a data e hora atuais.
  11. O cabeçalho Content-Type está definido como "application/vnd.openxmlformats-officedocument.wordprocessingml.document" para indicar um formato de arquivo do Word.

Perguntas frequentes

Qual é o primeiro passo para configurar o IronWord no Azure?

O primeiro passo para configurar o IronWord no Azure é criar uma conta do Azure, caso ainda não possua uma. Em seguida, você precisa configurar um novo Serviço de Aplicativo do Azure onde implantará seu aplicativo .NET usando o IronWord.

Como faço para implantar um aplicativo .NET usando o IronWord no Azure?

Para implantar um aplicativo .NET usando o IronWord no Azure, você deve empacotar seu aplicativo e suas dependências, incluindo as bibliotecas do IronWord, e carregá-los no seu Serviço de Aplicativos do Azure. Você pode usar ferramentas como o Visual Studio Publish ou os pipelines do Azure DevOps para esse processo.

Preciso de algum serviço específico do Azure para executar o IronWord?

O IronWord pode ser executado nos Serviços de Aplicativos padrão do Azure. No entanto, para obter o melhor desempenho, recomenda-se usar um plano que forneça recursos suficientes com base nos requisitos do seu aplicativo.

O IronWord pode ser usado com o Azure Functions?

Sim, o IronWord pode ser integrado ao Azure Functions para processar documentos do Word como parte de uma arquitetura sem servidor. Certifique-se de que o ambiente do Azure Functions tenha as dependências necessárias para o IronWord.

Como o IronWord aprimora o processamento de documentos do Word no Azure?

O IronWord aprimora o processamento de documentos do Word no Azure, fornecendo poderosas bibliotecas .NET que podem ser facilmente integradas aos serviços do Azure, permitindo a criação, manipulação e conversão eficientes de documentos do Word.

Existe alguma forma de automatizar tarefas do IronWord no Azure?

Sim, você pode automatizar tarefas do IronWord no Azure usando o Azure Logic Apps ou o Azure Functions para acionar o processamento de documentos do Word com base em eventos ou agendamentos específicos.

Quais são os benefícios de usar o IronWord no Azure?

Utilizar o IronWord no Azure permite o processamento escalável e confiável de documentos do Word, aproveitando a infraestrutura de nuvem do Azure para lidar com grandes volumes de documentos, mantendo um alto desempenho.

Posso integrar o IronWord com o Armazenamento de Blobs do Azure?

Sim, você pode integrar o IronWord com o Armazenamento de Blobs do Azure para armazenar e recuperar documentos do Word, permitindo o processamento e o gerenciamento de armazenamento de documentos de forma integrada em seu ambiente Azure.

Como posso garantir que o IronWord funcione de forma eficiente no Azure?

Para garantir que o IronWord seja executado com eficiência no Azure, selecione o plano de serviço adequado à sua carga de trabalho, otimize o código do seu aplicativo e implemente o tratamento de erros e o registro de logs apropriados para a resolução de problemas.

Há algum pré-requisito para usar o IronWord no Azure?

Os pré-requisitos para usar o IronWord no Azure incluem ter um ambiente .NET configurado, uma conta do Azure com as permissões necessárias e as bibliotecas do IronWord incluídas em seu projeto.

Kye Stuart
Redator Técnico

Kye Stuart une sua paixão por programação e sua habilidade de escrita na Iron Software. Formado em implantação de software pela Yoobee College, ele agora transforma conceitos tecnológicos complexos em conteúdo educacional claro. Kye valoriza o aprendizado contínuo e abraça novos desafios ...

Leia mais
Pronto para começar?
Nuget Downloads 35,581 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronWord
executar um exemplo Veja seus dados se transformarem em um documento do Word.