Exponera en REST API för att vattenmärka Word-dokument

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

Detta handledning vägleder dig om hur man exponerar en REST API för att lägga till vattenstämplar i Word-dokument i ASP.NET Core. Den innehåller steg-för-steg-instruktioner, installationsdetaljer och distributionsriktlinjer för stora plattformar.

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

  1. Ställ in ett ASP.NET Core Web API-projekt för att lägga till vattenstämplar.
  2. Installera Aspose.Words för .NET via NuGet Package Manager.
  3. Skapa en controller med en slutpunkt för att ta emot Word-filer och vattenstämpeltext eller bildparametrar.
  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 finns en körbar kodsnutt för att exponera en REST API som lägger till textvattenstämplar i Word-dokument:

using System.IO;
using System.Threading.Tasks;
using Aspose.Words;
using Aspose.Words.Drawing;
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("Vänligen ladda upp ett giltigt Word-dokument och ange en vattenstämpeltext.");

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

                Document doc = new Document(tempFilePath);
                AddTextWatermark(doc, watermarkText);

                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, $"Internt serverfel: {ex.Message}");
            }
        }

        private void AddTextWatermark(Document doc, string text)
        {
            foreach (Section section in doc.Sections)
            {
                var watermark = new Shape(doc, ShapeType.TextPlainText)
                {
                    TextPath = { Text = text, FontFamily = "Arial" },
                    Width = 300,
                    Height = 70,
                    Rotation = -40,
                    FillColor = System.Drawing.Color.LightGray,
                    StrokeColor = System.Drawing.Color.LightGray,
                    WrapType = WrapType.None,
                    BehindText = true,
                    RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
                    RelativeVerticalPosition = RelativeVerticalPosition.Page,
                    Left = 100,
                    Top = 200
                };

                section.HeadersFooters[HeaderFooterType.HeaderPrimary]?.AppendChild(watermark);
            }
        }
    }
}

Distribution på stora plattformar

Windows

  1. Installera IIS och konfigurera webbplatsen för att peka på den publicerade applikationsmappen.
  2. Publicera applikationen:
    dotnet publish -c Release -o publish

Linux

  1. Installera ASP.NET Core-runtime:
    sudo apt-get install -y aspnetcore-runtime-7.0
  2. Publicera applikationen:
    dotnet publish -c Release -o publish
  3. Konfigurera Nginx för att proxytrafik till Kestrel-servern.

macOS

  1. Installera .NET-runtime från den officiella sidan.
  2. Publicera och kör:
    dotnet publish -c Release -o publish
    cd publish
    dotnet WatermarkAPI.dll

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 lämpliga behörigheter till applikationsmappen.
    chmod -R 755 /path/to/app
  3. Prestandaproblem: För stora filer, optimera minnesanvändningen genom att bearbeta filer direkt från disk istället för strömmar.

Denna guide har visat hur man skapar en REST API för att lägga till vattenstämplar i Word-dokument med Aspose.Words för .NET och distribuera den på alla stora plattformar.

 Svenska