كشف REST API عن مستندات Word ذات العلامة المائية
چگونه میتوان واترمارکها را به اسناد ورد از طریق API REST ASP.NET Core اضافه کرد
این آموزش شما را راهنمایی میکند که چگونه یک API REST برای افزودن واترمارک به اسناد ورد در ASP.NET Core ایجاد کنید. این شامل دستورالعملهای گام به گام، جزئیات راهاندازی و راهنماییهای استقرار برای پلتفرمهای اصلی است.
مراحل افزودن واترمارک به اسناد ورد از طریق API REST
- یک پروژه ASP.NET Core Web API برای افزودن واترمارک راهاندازی کنید.
- Aspose.Words for .NET را از طریق مدیر بسته NuGet نصب کنید.
- یک کنترلر با یک نقطه پایانی برای پذیرش فایلهای ورد و پارامترهای متن یا تصویر واترمارک ایجاد کنید.
- کدی بنویسید که واترمارکهای متنی یا تصویری را به اسناد ورد اضافه کند.
- API را بهصورت محلی با استفاده از ابزارهایی مانند Postman یا cURL آزمایش کنید.
- API را در محیطهای ویندوز، لینوکس یا macOS مستقر کنید.
- Nginx یا IIS را برای استقرار در تولید پیکربندی کنید.
این مراحل رویکرد دقیقی را برای ایجاد و ارائه API واترمارک فراهم میکنند.
مثال کد: API REST برای افزودن واترمارکها
در زیر یک قطعه کد قابل اجرا برای ارائه یک API REST که واترمارکهای متنی را به اسناد ورد اضافه میکند، آمده است:
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("لطفاً یک سند ورد معتبر بارگذاری کنید و متن واترمارک را ارائه دهید.");
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);
}
}
}
}
استقرار در پلتفرمهای اصلی
ویندوز
- 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 پیکربندی کنید.
macOS
- زمان اجرای .NET را از سایت رسمی نصب کنید.
- منتشر و اجرا کنید:
dotnet publish -c Release -o publish cd publish dotnet WatermarkAPI.dll
مشکلات و راهحلهای رایج
- خطاهای ورودی نامعتبر: اطمینان حاصل کنید که فایل بارگذاری شده یک سند ورد معتبر است و متن واترمارک خالی نیست.
- خطاهای دسترسی ممنوع: در لینوکس/macOS، مجوزهای مناسب را به پوشه برنامه بدهید.
chmod -R 755 /path/to/app
- مشکلات عملکرد: برای فایلهای بزرگ، استفاده از حافظه را با پردازش فایلها بهطور مستقیم از دیسک به جای جریانها بهینه کنید.
این راهنما به شما نشان داده است که چگونه یک API REST برای افزودن واترمارک به اسناد ورد با استفاده از Aspose.Words for .NET ایجاد کنید و آن را در تمام پلتفرمهای اصلی مستقر کنید.