Expose a REST API to Watermark Word Documents

Как добавить водяные знаки в документы Word через REST API ASP.NET Core

Этот учебник поможет вам как открыть REST API для добавления водяных знаков в документы Word в ASP.NET Core. Включает пошаговые инструкции, детали настройки и рекомендации по развертыванию для основных платформ.

Шаги по добавлению водяных знаков в документы Word через REST API

  1. Настройте проект ASP.NET Core Web API для добавления водяных знаков.
  2. Установить Aspose.Words for .NET через NuGet Package Manager.
  3. Создайте контроллер с конечной точкой, принимающей файлы Word и параметры текста или изображения водяного знака.
  4. Напишите код для добавления текстовых или графических водяных знаков в документы Word.
  5. Протестируйте API локально, используя такие инструменты, как Postman или cURL.
  6. Разверните API в средах Windows, Linux или macOS.
  7. Настройте Nginx или IIS для продакшн‑развертывания.

Эти шаги предоставляют подробный подход к созданию и публикации API водяных знаков.

Пример кода: REST API для добавления водяных знаков

Ниже приведён исполняемый фрагмент кода, который открывает REST API для добавления текстовых водяных знаков в документы 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}");
            }
        }
    }
}

Развёртывание на основных платформах

Windows

  1. Установите IIS и настройте сайт, чтобы он указывал на папку опубликованного приложения.
  2. Опубликуйте приложение:

Linux

  1. Установите runtime ASP.NET Core:
  2. Опубликуйте приложение:
  3. Настройте Nginx для проксирования трафика к серверу Kestrel.

macOS

  1. Установите .NET runtime из официального сайта .
  2. Опубликуйте и запустите:

Распространённые проблемы и решения

  1. Ошибки неверного ввода: Убедитесь, что загруженный файл является действительным документом Word, а текст водяного знака не пустой.
  2. Ошибки отказа в доступе: В Linux/macOS предоставьте правильные разрешения папке приложения.
  3. Проблемы с производительностью: Для больших файлов оптимизируйте использование памяти, обрабатывая файлы напрямую с диска, а не через потоки.

В этом руководстве показано, как создать REST API для добавления водяных знаков в документы Word с использованием Aspose.Words for .NET и развернуть его на всех основных платформах.

 Русский