تعريض واجهة برمجة تطبيقات REST لوضع علامة مائية على مستندات Word
كيفية إضافة علامات مائية إلى مستندات Word عبر واجهة برمجة التطبيقات REST لـ ASP.NET Core
هذا الدليل يرشدك حول كيفية كشف واجهة برمجة تطبيقات REST لإضافة علامات مائية إلى مستندات Word في ASP.NET Core. يتضمن تعليمات خطوة بخطوة، تفاصيل الإعداد، وإرشادات النشر للمنصات الرئيسية.
خطوات إضافة علامات مائية إلى مستندات Word عبر واجهة برمجة تطبيقات REST
- إعداد مشروع ASP.NET Core Web API لإضافة علامات مائية.
- تثبيت Aspose.Words for .NET عبر مدير حزم NuGet.
- إنشاء وحدة تحكم مع نقطة نهاية لقبول ملفات Word ومعلمات نص أو صورة العلامة المائية.
- كتابة كود لإضافة علامات مائية نصية أو صور إلى مستندات Word.
- اختبار واجهة برمجة التطبيقات محليًا باستخدام أدوات مثل Postman أو cURL.
- نشر واجهة برمجة التطبيقات على بيئات Windows أو Linux أو macOS.
- تكوين Nginx أو IIS للنشر في الإنتاج.
تقدم هذه الخطوات نهجًا مفصلاً لإنشاء وكشف واجهة برمجة التطبيقات الخاصة بالعلامة المائية.
مثال على الكود: واجهة برمجة تطبيقات REST لإضافة علامات مائية
فيما يلي مقتطف كود قابل للتنفيذ لكشف واجهة برمجة تطبيقات REST التي تضيف علامات مائية نصية إلى مستندات 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("يرجى تحميل مستند Word صالح وتقديم نص العلامة المائية.");
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, $"خطأ داخلي في الخادم: {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:
sudo apt-get install -y aspnetcore-runtime-7.0
- نشر التطبيق:
dotnet publish -c Release -o publish
- تكوين Nginx لتوجيه حركة المرور إلى خادم Kestrel.
macOS
- تثبيت وقت تشغيل .NET من الموقع الرسمي.
- نشر وتشغيل:
dotnet publish -c Release -o publish cd publish dotnet WatermarkAPI.dll
المشاكل الشائعة والحلول
- أخطاء الإدخال غير الصالح: تأكد من أن الملف المرفوع هو مستند Word صالح وأن نص العلامة المائية غير فارغ.
- أخطاء الوصول المرفوض: على Linux/macOS، منح الأذونات المناسبة لمجلد التطبيق.
chmod -R 755 /path/to/app
- مشاكل الأداء: للملفات الكبيرة، تحسين استخدام الذاكرة عن طريق معالجة الملفات مباشرة من القرص بدلاً من التدفقات.
لقد أظهر لك هذا الدليل كيفية إنشاء واجهة برمجة تطبيقات REST لإضافة علامات مائية إلى مستندات Word باستخدام Aspose.Words for .NET ونشرها على جميع المنصات الرئيسية.