Expose a REST API to Watermark Word Documents
Jak dodać znaki wodne do dokumentów Word za pomocą REST API w ASP.NET Core
Ten poradnik prowadzi cię jak udostępnić interfejs REST API do dodawania znaków wodnych do dokumentów Word w ASP.NET Core. Zawiera instrukcje krok po kroku, szczegóły konfiguracji oraz wytyczne dotyczące wdrażania na głównych platformach.
Kroki dodawania znaków wodnych do dokumentów Word za pomocą REST API
- Utwórz projekt ASP.NET Core Web API do dodawania znaków wodnych.
- Zainstaluj Aspose.Words for .NET przez NuGet Package Manager.
- Utwórz kontroler z punktem końcowym przyjmującym pliki Word oraz parametry tekstu lub obrazu znaku wodnego.
- Napisz kod dodający tekstowe lub graficzne znaki wodne do dokumentów Word.
- Przetestuj API lokalnie, używając narzędzi takich jak Postman lub cURL.
- Wdroż API w środowiskach Windows, Linux lub macOS.
- Skonfiguruj Nginx lub IIS do wdrożenia produkcyjnego.
Te kroki zapewniają szczegółowe podejście do tworzenia i udostępniania API znaków wodnych.
Przykład kodu: REST API do dodawania znaków wodnych
Poniżej znajduje się działający fragment kodu udostępniający REST API, które dodaje tekstowe znaki wodne do dokumentów Word:
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}");
}
}
}
}Wdrażanie na głównych platformach
Windows
- Zainstaluj IIS i skonfiguruj witrynę, aby wskazywała na folder opublikowanej aplikacji.
- Opublikuj aplikację:
Linux
- Zainstaluj środowisko uruchomieniowe ASP.NET Core:
- Opublikuj aplikację:
- Skonfiguruj Nginx, aby przekazywał ruch do serwera Kestrel.
macOS
- Zainstaluj środowisko uruchomieniowe .NET z oficjalnej strony .
- Opublikuj i uruchom:
Typowe problemy i rozwiązania
- Błędy Nieprawidłowego Wejścia: Upewnij się, że przesłany plik jest prawidłowym dokumentem Word i że tekst znaku wodnego nie jest pusty.
- Błędy Odmowy Dostępu: Na systemach Linux/macOS przyznaj odpowiednie uprawnienia folderowi aplikacji.
- Problemy z wydajnością: Dla dużych plików zoptymalizuj zużycie pamięci, przetwarzając pliki bezpośrednio z dysku zamiast strumieni.
Ten przewodnik pokazał Ci, jak stworzyć REST API do dodawania znaków wodnych do dokumentów Word przy użyciu Aspose.Words for .NET i wdrożyć je na wszystkich głównych platformach.