Expose a REST API to Watermark Word Documents

Hur man lägger till vattenstämplar i Word-dokument via ASP.NET Core REST API

Den här handledningen guidar dig om hur man exponerar ett REST‑API för att lägga till vattenstämplar i Word‑dokument i ASP.NET Core. Det innehåller steg‑för‑steg‑instruktioner, installationsdetaljer och distributionsriktlinjer för de största plattformarna.

Steg för att lägga till vattenstämplar i Word-dokument via REST API

  1. Skapa ett ASP.NET Core Web API-projekt för att lägga till vattenstämplar.
  2. Installera Aspose.Words for .NET via NuGet Package Manager.
  3. Skapa en controller med en endpoint som tar emot Word-filer samt parametrar för vattenstämpeltext eller bild.
  4. Skriv kod för att lägga till text- eller bildvattenstämplar i Word-dokument.
  5. Testa API:et lokalt med verktyg som Postman eller cURL.
  6. Distribuera API:et på Windows-, Linux- eller macOS-miljöer.
  7. Konfigurera Nginx eller IIS för produktionsdistribution.

Dessa steg ger en detaljerad metod för att skapa och exponera vattenstämpel‑API.

Kodexempel: REST API för att lägga till vattenstämplar.

Nedan är ett körbart kodexempel för att exponera ett REST‑API som lägger till textvattenstämplar i Word‑dokument:

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}");
            }
        }
    }
}

Utrullning på stora plattformar

Windows

  1. Installera IIS och konfigurera webbplatsen så att den pekar på den publicerade applikationsmappen.
  2. Publicera applikationen:

Linux

  1. Installera ASP.NET Core‑runtime:
  2. Publicera applikationen:
  3. Konfigurera Nginx för att proxy-trafik till Kestrel-servern.

macOS

  1. Installera .NET runtime från den officiella webbplatsen .
  2. Publicera och kör:

Vanliga problem och lösningar

  1. Ogiltiga inmatningsfel: Se till att den uppladdade filen är ett giltigt Word-dokument och att vattenstämpeltexten inte är tom.
  2. Åtkomst nekad fel: På Linux/macOS, ge rätt behörigheter till applikationsmappen.
  3. Prestandaproblem: För stora filer, optimera minnesanvändning genom att bearbeta filer direkt från disk istället för strömmar.

Denna guide har visat dig hur du skapar ett REST API för att lägga till vattenstämplar i Word-dokument med hjälp av Aspose.Words for .NET och distribuera det på alla större plattformar.

 Svenska