חשוף API REST לסימון מים במסמכי Word
איך להוסיף סימני מים למסמכי Word דרך API REST של ASP.NET Core
המדריך הזה מנחה אותך על איך לחשוף API REST להוספת סימני מים למסמכי Word ב-ASP.NET Core. הוא כולל הוראות שלב אחר שלב, פרטי התקנה, והנחיות פריסה לפלטפורמות מרכזיות.
שלבים להוספת סימני מים למסמכי Word באמצעות API REST
- הקם פרויקט ASP.NET Core Web API להוספת סימני מים.
- התקן Aspose.Words for .NET באמצעות מנהל חבילות NuGet.
- צור בקר עם נקודת קצה לקבלת קבצי Word ופרמטרים של טקסט או תמונה לסימן מים.
- כתוב קוד להוספת סימני מים של טקסט או תמונה למסמכי Word.
- בדוק את ה-API באופן מקומי באמצעות כלים כמו Postman או cURL.
- פרוס את ה-API בסביבות Windows, Linux או macOS.
- קונפג את Nginx או IIS לפריסת ייצור.
שלבים אלה מספקים גישה מפורטת ליצירה ולחשיפת ה-API לסימני מים.
דוגמת קוד: API REST להוספת סימני מים
להלן קטע קוד שניתן להריץ כדי לחשוף API 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
- בעיות ביצועים: עבור קבצים גדולים, אופטימיזציה של השימוש בזיכרון על ידי עיבוד קבצים ישירות מהדיסק במקום מזרמים.
המדריך הזה הראה לך איך ליצור API REST להוספת סימני מים למסמכי Word באמצעות Aspose.Words for .NET ולפרוס אותו על כל הפלטפורמות המרכזיות.