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
- Configure um projeto ASP.NET Core Web API para adicionar marcas d’água.
- Instalar Aspose.Words for .NET via Gerenciador de Pacotes NuGet.
- Crie um controlador com um endpoint para aceitar arquivos Word e parâmetros de texto ou imagem de marca d’água.
- Escreva código para adicionar marcas d’água de texto ou imagem a documentos Word.
- Teste a API localmente usando ferramentas como Postman ou cURL.
- Implante a API em ambientes Windows, Linux ou macOS.
- 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
- Instale o IIS e configure o site para apontar para a pasta da aplicação publicada.
- Publicar a aplicação:
Linux
- Instale o runtime do ASP.NET Core:
- Publicar a aplicação:
- Configure o Nginx para fazer proxy do tráfego para o servidor Kestrel.
macOS
- Instale o runtime .NET a partir do site oficial .
- Publicar e executar:
Problemas Comuns e Soluções
- 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.
- Erros de Acesso Negado: No Linux/macOS, conceda as permissões adequadas à pasta do aplicativo.
- 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.