Expose a REST API to Watermark Word Documents

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

Този урок ви напътства как да изложите 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. Публикувайте приложението:
dotnet publish -c Release -o publish

Linux

  1. Инсталирайте ASP.NET Core runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
  1. Публикувайте приложението:
dotnet publish -c Release -o publish
  1. Конфигурирайте Nginx да проксира трафика към сървъра Kestrel.

macOS

  1. Инсталирайте .NET runtime от the официален сайт .
  2. Публикувайте и стартирайте:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

Чести проблеми и решения

  1. Грешки при невалиден вход: Уверете се, че каченият файл е валиден Word документ и текстът на водния знак не е празен.
  2. Грешки за отказан достъп: В Linux/macOS предоставете правилните разрешения за папката на приложението.
chmod -R 755 /path/to/app
  1. Проблеми с производителността: За големи файлове оптимизирайте използването на паметта, като обработвате файловете директно от диска, вместо чрез потоци.

Този наръчник ви показа как да създадете REST API за добавяне на водни знаци към Word документи, използвайки Aspose.Words for .NET и разположете го на всички основни платформи.

 Български