Expose a REST API to Watermark Word Documents
Cómo agregar marcas de agua a documentos Word mediante la API REST de ASP.NET Core
Este tutorial le guía sobre cómo exponer una API REST para agregar marcas de agua a documentos Word en ASP.NET Core. Incluye instrucciones paso a paso, detalles de configuración y guías de despliegue para las principales plataformas.
Pasos para agregar marcas de agua a documentos Word mediante API REST
- Configure un proyecto ASP.NET Core Web API para agregar marcas de agua.
- Instalar Aspose.Words for .NET a través de NuGet Package Manager.
- Cree un controlador con un endpoint que acepte archivos Word y parámetros de texto o imagen de marca de agua.
- Escriba código para agregar marcas de agua de texto o imagen a documentos Word.
- Pruebe la API localmente usando herramientas como Postman o cURL.
- Despliegue la API en entornos Windows, Linux o macOS.
- Configurar Nginx o IIS para despliegue en producción.
Estos pasos proporcionan un enfoque detallado para crear y exponer el watermark API.
Ejemplo de código: API REST para agregar marcas de agua.
A continuación se muestra un fragmento de código ejecutable para exponer una API REST que agrega marcas de agua 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}");
}
}
}
}Implementación en plataformas principales
Windows
- Instale IIS y configure el sitio para que apunte a la carpeta de la aplicación publicada.
- Publique la aplicación:
Linux
- Instale el runtime de ASP.NET Core:
- Publique la aplicación:
- Configura Nginx para que haga proxy del tráfico al servidor Kestrel.
macOS
- Instale el .NET runtime desde el sitio oficial .
- Publicar y ejecutar:
Problemas comunes y soluciones
- Errores de entrada inválida: Asegúrese de que el archivo cargado sea un documento Word válido y que el texto de la marca de agua no esté vacío.
- Errores de acceso denegado: En Linux/macOS, conceda los permisos adecuados a la carpeta de la aplicación.
- Problemas de rendimiento: Para archivos grandes, optimice el uso de memoria procesando los archivos directamente desde el disco en lugar de flujos.
Esta guía le ha mostrado cómo crear una API REST para agregar marcas de agua a documentos Word usando Aspose.Words for .NET y desplegarla en todas las plataformas principales.