Expose a REST API to Watermark Word Documents

Com afegir Watermarks a Documents de Word a través de l'API ASP.NET Core REST

Aquest tutorial us guia sobre com exposar una API REST per afegir marques d’aigua a documents Word a ASP.NET Core. Inclou instruccions pas a pas, detalls de configuració i directrius de desplegament per a les principals plataformes.

Passos per afegir marques d’aigua a documents Word mitjançant una API REST

  1. Configureu un projecte ASP.NET Core Web API per afegir marques d’aigua.
  2. Instal·la Aspose.Words for .NET via el Gestor de Paquets NuGet.
  3. Creeu un controlador amb un endpoint per acceptar fitxers Word i paràmetres de text o imatge de marca d’aigua.
  4. Escriviu codi per afegir marques d’aigua de text o imatge a documents Word.
  5. Proveu l’API localment utilitzant eines com Postman o cURL.
  6. Desplegueu l’API en entorns Windows, Linux o macOS.
  7. Configureu Nginx o IIS per al desplegament en producció.

Aquests passos ofereixen un enfocament detallat per crear i exposar la API de marques d’aigua.

Exemple de codi: API REST per afegir marques d’aigua

A continuació hi ha un fragment de codi executable per exposar una API REST que afegeix marques d’aigua de text a documents 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}");
            }
        }
    }
}

Desplegament en les principals plataformes

Windows

  1. Instal·leu IIS i configureu el lloc perquè apunti a la carpeta de l’aplicació publicada.
  2. Publica l’aplicació:
dotnet publish -c Release -o publish

Linux

  1. Instal·leu el runtime ASP.NET Core:
sudo apt-get install -y aspnetcore-runtime-7.0
  1. Publica l’aplicació:
dotnet publish -c Release -o publish
  1. Configureu Nginx per proxyar el trànsit cap al servidor Kestrel.

macOS

  1. Instal·la el temps d’execució .NET des del lloc oficial .
  2. Publica i executa:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

Problemes comuns i solucions

  1. Errors d’entrada no vàlida: Assegureu-vos que el fitxer pujat sigui un document Word vàlid i que el text de la marca d’aigua no estigui buit.
  2. Errors d’accés denegat: En Linux/macOS, concedeix els permisos adequats a la carpeta de l’aplicació.
chmod -R 755 /path/to/app
  1. Problemes de rendiment: Per a fitxers grans, optimitza l’ús de memòria processant els fitxers directament des del disc en lloc d’usar fluxos.

Aquesta guia us ha mostrat com crear una API REST per afegir marques d’aigua a documents Word utilitzant Aspose.Words for .NET i desplegar-la a totes les plataformes principals.

 Català