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.
  3. إنشاء وحدة تحكم مع نقطة نهاية لقبول ملفات Word ومعلمات نص العلامة المائية أو الصورة.
  4. كتابة كود لإضافة علامات مائية نصية أو صورة إلى مستندات Word.
  5. اختبار الـ API محليًا باستخدام أدوات مثل Postman أو cURL.
  6. نشر الـ API على بيئات Windows أو Linux أو macOS.
  7. تكوين Nginx أو IIS للنشر في بيئة الإنتاج.

توفر هذه الخطوات نهجًا مفصلاً لإنشاء وتعريض الـ watermark API 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. نشر التطبيق:
dotnet publish -c Release -o publish

Linux

  1. تثبيت وقت تشغيل ASP.NET Core:
sudo apt-get install -y aspnetcore-runtime-7.0
  1. نشر التطبيق:
dotnet publish -c Release -o publish
  1. تكوين 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
  1. مشكلات الأداء: للملفات الكبيرة، حسّن استخدام الذاكرة عن طريق معالجة الملفات مباشرة من القرص بدلاً من التدفقات.

لقد أظهر لك هذا الدليل كيفية إنشاء REST API لإضافة علامات مائية إلى مستندات Word باستخدام Aspose.Words for .NET ونشره على جميع المنصات الرئيسية.

 عربي