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