Expose a REST API для добавления водяных знаков в документы Word

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

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

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

  1. Настройте проект ASP.NET Core Web API для добавления водяных знаков.
  2. Установите Aspose.Words для .NET через диспетчер пакетов NuGet.
  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 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("Пожалуйста, загрузите действительный документ Word и укажите текст водяного знака.");

            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, $"Внутренняя ошибка сервера: {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);
            }
        }
    }
}

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

Windows

  1. Установите IIS и настройте сайт, чтобы он указывал на папку с опубликованным приложением.
  2. Опубликуйте приложение:
    dotnet publish -c Release -o publish

Linux

  1. Установите среду выполнения ASP.NET Core:
    sudo apt-get install -y aspnetcore-runtime-7.0
  2. Опубликуйте приложение:
    dotnet publish -c Release -o publish
  3. Настройте Nginx для проксирования трафика на сервер Kestrel.

macOS

  1. Установите среду выполнения .NET с официального сайта.
  2. Опубликуйте и запустите:
    dotnet publish -c Release -o publish
    cd publish
    dotnet WatermarkAPI.dll

Общие проблемы и их решения

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

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

 Русский