Expose a REST API to Watermark Word Documents

Як додати водяні знаки до Word-документів за допомогою API ASP.NET Core REST

Цей навчальний заклад направляє вас на як експонувати REST API для додавання водних знаків до Word-документів в ASP.NET Core. Він включає в себе інструкції крок за кроком, деталі налаштування та інструкції щодо запуску для великих платформ.

Додати водяні знаки до Word-документів за допомогою REST API

  • Створення проекту ASP.NET Core Web API для додавання водних знаків.
  • Інсталяція Aspose.Words для .NET Про це йдеться в повідомленні NuGet Package Manager.
  • Створіть контролер з кінцевою точкою для прийняття файлів Word та параметрів тексту або зображення.
  • Напишіть код, щоб додати текст або зображення водяних знаків до документів Word.
  • Тестуйте API локально за допомогою таких інструментів, як Postman або cURL.
  • Розподіл API на Windows, Linux або macOS середовищах.
  • Налаштуйте Nginx або IIS для розробки виробництва.

Ці кроки дають детальний підхід до створення та виявлення API Watermark.

Приклад коду: 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("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);
                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, $"Internal server error: {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

  • Налаштуйте IIS і налаштуйте сайт, щоб вказувати на опубліковану папку додатків.
  • Опублікуйте заявку:
dotnet publish -c Release -o publish

Linux

  • Завантажити ASP.NET Core Runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
  • Опублікуйте заявку:
dotnet publish -c Release -o publish
  • Налаштуйте Nginx до прокси трафіку на сервер Kestrel.

МАКОС

dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

Загальні питання та рішення

  • Недійсні вхідні помилки: Переконайтеся, що завантажений файл є дійсним документом Word, а текст водяного знака не є порожнім.
  • Доступ відмовляється від помилок: На Linux/macOS, надайте відповідні дозволи для папки додатків.
chmod -R 755 /path/to/app
  • Проблеми продуктивності: Для великих файлів, оптимізуйте використання пам’яті шляхом обробки файлів безпосередньо з диска, а не потоків.

Цей посібник показав вам, як створити REST API для додавання водних знаків до Word-документів за допомогою Aspose.Words для .NET і розмістити його на всіх основних платформах.

 Українська