Expose a REST API do znakowania wodnego dokumentów Word

Jak dodać znaki wodne do dokumentów Word za pomocą ASP.NET Core REST API

Ten samouczek prowadzi cię przez jak udostępnić interfejs API REST do dodawania znaków wodnych do dokumentów Word w ASP.NET Core. Zawiera instrukcje krok po kroku, szczegóły dotyczące konfiguracji i wytyczne dotyczące wdrażania na głównych platformach.

Kroki do dodawania znaków wodnych do dokumentów Word za pomocą interfejsu API REST

  1. Skonfiguruj projekt ASP.NET Core Web API do dodawania znaków wodnych.
  2. Zainstaluj Aspose.Words dla .NET za pomocą Menedżera pakietów NuGet.
  3. Utwórz kontroler z punktem końcowym, aby akceptować pliki Word oraz parametry tekstu lub obrazu znaku wodnego.
  4. Napisz kod do dodawania tekstowych lub obrazkowych znaków wodnych do dokumentów Word.
  5. Przetestuj interfejs API lokalnie, korzystając z narzędzi takich jak Postman lub cURL.
  6. Wdróż interfejs API w środowiskach Windows, Linux lub macOS.
  7. Skonfiguruj Nginx lub IIS do wdrożenia produkcyjnego.

Te kroki zapewniają szczegółowe podejście do tworzenia i udostępniania interfejsu API znaku wodnego.

Przykład kodu: interfejs API REST do dodawania znaków wodnych

Poniżej znajduje się działający fragment kodu do udostępnienia interfejsu API REST, który dodaje tekstowe znaki wodne do dokumentów Word:

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("Proszę przesłać ważny dokument Word i podać tekst znaku wodnego.");

            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, $"Błąd serwera: {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);
            }
        }
    }
}

Wdrażanie na głównych platformach

Windows

  1. Zainstaluj IIS i skonfiguruj witrynę, aby wskazywała na folder aplikacji opublikowanej.
  2. Opublikuj aplikację:
    dotnet publish -c Release -o publish

Linux

  1. Zainstaluj środowisko uruchomieniowe ASP.NET Core:
    sudo apt-get install -y aspnetcore-runtime-7.0
  2. Opublikuj aplikację:
    dotnet publish -c Release -o publish
  3. Skonfiguruj Nginx, aby kierować ruch do serwera Kestrel.

macOS

  1. Zainstaluj środowisko uruchomieniowe .NET z oficjalnej strony.
  2. Opublikuj i uruchom:
    dotnet publish -c Release -o publish
    cd publish
    dotnet WatermarkAPI.dll

Typowe problemy i rozwiązania

  1. Błędy nieprawidłowego wejścia: Upewnij się, że przesłany plik jest ważnym dokumentem Word, a tekst znaku wodnego nie jest pusty.
  2. Błędy odmowy dostępu: W systemie Linux/macOS nadaj odpowiednie uprawnienia do folderu aplikacji.
    chmod -R 755 /path/to/app
  3. Problemy z wydajnością: W przypadku dużych plików zoptymalizuj użycie pamięci, przetwarzając pliki bezpośrednio z dysku, a nie ze strumieni.

Ten przewodnik pokazał, jak stworzyć interfejs API REST do dodawania znaków wodnych do dokumentów Word za pomocą Aspose.Words dla .NET i wdrożyć go na wszystkich głównych platformach.

 Polski