Expose a REST API to Watermark Word Documents

Ako pridať vodné značky do Word dokumentov pomocou ASP.NET Core REST API

Tento tutoriál vás vedie o ako vystavovať REST API pre pridávanie vodných značiek do dokumentov programu Word v ASP.NET Core. obsahuje krok za krokom pokyny, podrobnosti o nastavení a usmernenia o implementácii pre hlavné platformy.

Krokmi k pridávaní vodných značiek do Word dokumentov prostredníctvom REST API

  • Vytvorte projekt ASP.NET Core Web API na pridávanie vodných značiek.
  • Install Aspose.Words pre .NET via NuGet Package Manager.
  • Vytvorte ovládač s koncovým bodom na prijatie súborov programu Word a parametrov textu alebo obrazu.
  • Napíšte kód, aby ste do dokumentov programu Word pridali text alebo obrázok.
  • Testovať API lokálne pomocou nástrojov, ako je Postman alebo cURL.
  • Nainštalujte API na prostrediach Windows, Linux alebo macOS.
  • Nastavenie Nginx alebo IIS pre rozloženie výroby.

Tieto kroky poskytujú podrobný prístup k vytvoreniu a vystavení API watermark.

Príklad kódu: REST API pre pridávanie vodných značiek

Nižšie je spúšťateľný kód na vystavenie REST API, ktorý pridá textové vodné značky do Word dokumentov:

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("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);
                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, $"Internal server error: {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);
            }
        }
    }
}

Využitie na hlavných platformách

Windows

  • Inštalovať IIS a nastaviť lokalitu na označenie publikovaného priečinka aplikácie.
  • Zverejnite žiadosť:
dotnet publish -c Release -o publish

Linux

  • Inštalácia ASP.NET Core runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
  • Zverejnite žiadosť:
dotnet publish -c Release -o publish
  • Nastaviť Nginx na proxy prevádzku na server Kestrel.

macOS

dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

Spoločné problémy a riešenia

  • Invalid Input Errors: Uistite sa, že nahraný súbor je platným Wordovým dokumentom a text vodného znaku nie je prázdny.
  • Prístup odmietnutých chýb: V systéme Linux/macOS poskytnite príslušné povolenia do priečinka aplikácie.
chmod -R 755 /path/to/app
  • Výkonné problémy: Pri veľkých súboroch optimalizujte používanie pamäte spracovaním súborov priamo z disku namiesto streamov.

Tento sprievodca vám ukázal, ako vytvoriť REST API pre pridávanie vodných značiek do Word dokumentov pomocou Aspose.Words pre .NET a implementovať ho na všetkých hlavných platformách.

 Slovenčina