Expose a REST API to Watermark Word Documents

Como Adicionar Marcas d'água a Documentos Word via API REST ASP.NET Core

Este tutorial orienta você sobre como expor uma API REST para adicionar marcas d’água a documentos Word no ASP.NET Core. Inclui instruções passo a passo, detalhes de configuração e diretrizes de implantação para as principais plataformas.

Etapas para adicionar marcas d’água a documentos Word via API REST

  1. Configure um projeto ASP.NET Core Web API para adicionar marcas d’água.
  2. Instalar Aspose.Words for .NET via Gerenciador de Pacotes NuGet.
  3. Crie um controlador com um endpoint para aceitar arquivos Word e parâmetros de texto ou imagem de marca d’água.
  4. Escreva código para adicionar marcas d’água de texto ou imagem a documentos Word.
  5. Teste a API localmente usando ferramentas como Postman ou cURL.
  6. Implante a API em ambientes Windows, Linux ou macOS.
  7. Configure o Nginx ou o IIS para implantação em produção.

Estas etapas fornecem uma abordagem detalhada para criar e expor a API de marca d’água.

Exemplo de Código: API REST para Adicionar Marcas d’água

Abaixo está um trecho de código executável para expor uma API REST que adiciona marcas d’água de texto a documentos Word:

using System.IO;
using System.Threading.Tasks;
using Aspose.Words;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace WatermarkAPI.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class WatermarkController : ControllerBase
    {
        [HttpPost("add-watermark")]
        public async Task<IActionResult> AddWatermark(IFormFile file, [FromQuery] string watermarkText)
        {
            if (file == null || file.Length == 0 || string.IsNullOrWhiteSpace(watermarkText))
                return BadRequest("Please upload a valid Word document and provide a watermark text.");

            try
            {
                var tempFilePath = Path.GetTempFileName();
                using (var stream = new FileStream(tempFilePath, FileMode.Create))
                {
                    await file.CopyToAsync(stream);
                }

                Document doc = new Document(tempFilePath);

                TextWatermarkOptions options = new TextWatermarkOptions
                {
                    FontFamily = "Arial",
                    FontSize = 40,
                    Color = System.Drawing.Color.LightGray,
                    Layout = WatermarkLayout.Diagonal,
                    IsSemitrasparent = true
                };
                doc.Watermark.SetText(watermarkText, options);

                var outputStream = new MemoryStream();
                doc.Save(outputStream, SaveFormat.Docx);

                outputStream.Position = 0;
                return File(outputStream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "watermarked.docx");
            }
            catch (System.Exception ex)
            {
                return StatusCode(500, $"Internal server error: {ex.Message}");
            }
        }
    }
}

Implantação em Principais Plataformas

Windows

  1. Instale o IIS e configure o site para apontar para a pasta da aplicação publicada.
  2. Publicar a aplicação:

Linux

  1. Instale o runtime do ASP.NET Core:
  2. Publicar a aplicação:
  3. Configure o Nginx para fazer proxy do tráfego para o servidor Kestrel.

macOS

  1. Instale o runtime .NET a partir do site oficial .
  2. Publicar e executar:

Problemas Comuns e Soluções

  1. Erros de Entrada Inválida: Certifique-se de que o arquivo enviado seja um documento Word válido e que o texto da marca d’água não esteja vazio.
  2. Erros de Acesso Negado: No Linux/macOS, conceda as permissões adequadas à pasta do aplicativo.
  3. Problemas de desempenho: Para arquivos grandes, otimize o uso de memória processando os arquivos diretamente do disco em vez de fluxos.

Este guia mostrou como criar uma API REST para adicionar marcas d’água a documentos Word usando Aspose.Words for .NET e implantá‑la em todas as principais plataformas.

 Português