Expose a REST API to Watermark Word Documents

چگونه واترمارک‌ها را به اسناد Word از طریق ASP.NET Core REST API اضافه کنیم

این آموزش شما را راهنمایی می‌کند در چگونه یک API REST برای افزودن واترمارک به اسناد 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 را برای استقرار در محیط تولید پیکربندی کنید.

این مراحل یک رویکرد دقیق برای ایجاد و نمایش watermark 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. ASP.NET Core runtime را نصب کنید:
  2. برنامه را منتشر کنید:
  3. Nginx را طوری پیکربندی کنید که ترافیک را به سرور Kestrel پروکسی کند.

macOS

  1. نصب .NET runtime از سایت رسمی .
  2. انتشار و اجرا:

مشکلات رایج و راه‌حل‌ها

  1. خطاهای ورودی نامعتبر: اطمینان حاصل کنید که فایل بارگذاری شده یک سند Word معتبر است و متن واترمارک خالی نیست.
  2. خطاهای دسترسی رد شد: در لینوکس/مک‌اواس، دسترسی‌های مناسب را به پوشه برنامه اعطا کنید.
  3. مشکلات عملکرد: برای فایل‌های بزرگ، استفاده از حافظه را با پردازش فایل‌ها مستقیماً از دیسک به‌جای جریان‌ها بهینه کنید.

این راهنما به شما نشان داده است که چگونه یک REST API برای افزودن واترمارک‌ها به اسناد Word ایجاد کنید با استفاده از Aspose.Words for .NET و آن را بر روی تمام پلتفرم‌های اصلی استقرار دهید.

 فارسی