Expose a REST API to Watermark Word Documents
# چگونه میتوان واترمارکها را به اسناد ورد از طریق API REST ASP.NET Core اضافه کرد
این راهنمای شما را در چگونه برای قرار دادن یک API REST برای اضافه کردن علائم آب به اسناد Word در ASP.NET Core راهنمایی می کند.این شامل دستورالعمل های گام به گام، جزئیات تنظیمات و دستورالعمل های راه اندازی برای پلتفرم های بزرگ است.
گام هایی برای اضافه کردن علائم آب به اسناد Word از طریق REST API
- ایجاد یک پروژه ASP.NET Core Web API برای اضافه کردن علائم آب.
- نصب Aspose.Words برای .NET از طریق NuGet Package Manager.
- یک کنترلر با یک نقطه پایان ایجاد کنید تا فایل های Word و پارامترهای متن یا تصویر را بپذیرید.
- کد را بنویسید تا متن یا تصویر را به اسناد Word اضافه کنید.
- API را به صورت محلی با استفاده از ابزارهای مانند Postman یا cURL تست کنید.
- API را در محیط های ویندوز، لینوکس یا 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.
ماکوس
- زمان اجرا .NET را از سایت رسمی .
- انتشار و اجرا :
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
مشکلات و اصلاحات مشترک
- خطای ورودی نادرست: اطمینان حاصل کنید که فایل بارگذاری شده یک سند Word معتبر است و متن نوار آب خالی است.
- Access Denied Errors: در لینوکس/macOS، اجازه های مناسب را به پوشه برنامه بدهید.
chmod -R 755 /path/to/app
- مشکلات عملکرد: برای فایل های بزرگ، استفاده از حافظه را با پردازش فایل ها مستقیما از دیسک به جای جریان بهینه کنید.
این راهنمای به شما نشان می دهد که چگونه یک API REST برای اضافه کردن علائم آب به اسناد Word با استفاده از Aspose.Words برای .NET ایجاد کنید و آن را در تمام پلتفرم های بزرگ راه اندازی کنید.