Expose a REST API to Watermark Word Documents

Sådan tilføjes vandmærker til Word-dokumenter via ASP.NET Core REST API

Denne vejledning guider dig i hvordan man eksponerer en REST API til at tilføje vandmærker til Word-dokumenter i ASP.NET Core. Den indeholder trin-for-trin instruktioner, opsætningsdetaljer og implementeringsretningslinjer for de vigtigste platforme.

Trin til at tilføje vandmærker til Word-dokumenter via REST API

  1. Opsæt et ASP.NET Core Web API-projekt til at tilføje vandmærker.
  2. Installer Aspose.Words for .NET via NuGet Package Manager.
  3. Opret en controller med et endpoint, der kan modtage Word-filer samt vandmærketekst- eller billedparametre.
  4. Skriv kode for at tilføje tekst- eller billedvandmærker til Word-dokumenter.
  5. Test API’et lokalt ved hjælp af værktøjer som Postman eller cURL.
  6. Implementer API’et på Windows-, Linux- eller macOS-miljøer.
  7. Konfigurer Nginx eller IIS til produktionsudrulning.

Disse trin giver en detaljeret tilgang til at oprette og eksponere vandmærke-API.

Kodeeksempel: REST API til tilføjelse af vandmærker

Nedenfor er et kørbart kodeeksempel til at eksponere et REST API, der tilføjer tekstvandmærker til Word-dokumenter:

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

Udrulning på større platforme

Windows

  1. Installer IIS og konfigurer sitet til at pege på den publicerede applikationsmappe.
  2. Publicer applikationen:

Linux

  1. Installer ASP.NET Core runtime:
  2. Publicer applikationen:
  3. Konfigurer Nginx til at proxy trafik til Kestrel-serveren.

macOS

  1. Installer .NET runtime fra den officielle side .
  2. Udgiv og kør:

Almindelige problemer og rettelser

  1. Ugyldige inputfejl: Sørg for, at den uploadede fil er et gyldigt Word-dokument, og at vandmærketeksten ikke er tom.
  2. Adgang nægtet-fejl: På Linux/macOS skal du give de korrekte tilladelser til applikationsmappen.
  3. Ydelsesproblemer: For store filer, optimer hukommelsesforbruget ved at behandle filer direkte fra disken i stedet for strømme.

Denne vejledning har vist dig, hvordan du opretter en REST API til at tilføje vandmærker til Word-dokumenter ved hjælp af Aspose.Words for .NET og implementer den på alle større platforme.

 Dansk