Expose a REST API to Watermark Word Documents
Как добавить водяные знаки в документы Word через REST API ASP.NET Core
Этот учебник поможет вам как открыть REST API для добавления водяных знаков в документы Word в ASP.NET Core. Включает пошаговые инструкции, детали настройки и рекомендации по развертыванию для основных платформ.
Шаги по добавлению водяных знаков в документы Word через REST API
- Настройте проект ASP.NET Core Web API для добавления водяных знаков.
- Установить Aspose.Words for .NET через NuGet Package Manager.
- Создайте контроллер с конечной точкой, принимающей файлы Word и параметры текста или изображения водяного знака.
- Напишите код для добавления текстовых или графических водяных знаков в документы Word.
- Протестируйте API локально, используя такие инструменты, как Postman или cURL.
- Разверните API в средах Windows, Linux или macOS.
- Настройте 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
- Установите IIS и настройте сайт, чтобы он указывал на папку опубликованного приложения.
- Опубликуйте приложение:
Linux
- Установите runtime ASP.NET Core:
- Опубликуйте приложение:
- Настройте Nginx для проксирования трафика к серверу Kestrel.
macOS
- Установите .NET runtime из официального сайта .
- Опубликуйте и запустите:
Распространённые проблемы и решения
- Ошибки неверного ввода: Убедитесь, что загруженный файл является действительным документом Word, а текст водяного знака не пустой.
- Ошибки отказа в доступе: В Linux/macOS предоставьте правильные разрешения папке приложения.
- Проблемы с производительностью: Для больших файлов оптимизируйте использование памяти, обрабатывая файлы напрямую с диска, а не через потоки.
В этом руководстве показано, как создать REST API для добавления водяных знаков в документы Word с использованием Aspose.Words for .NET и развернуть его на всех основных платформах.