Expose a REST API to Watermark Word Documents
วิธีการเพิ่มเครื่องหมายน้ําไปยังเอกสาร Word โดยใช้ API ASP.NET Core REST
คําแนะนํานี้จะแนะนําให้คุณเกี่ยวกับ วิธีการเปิดเผย API REST เพื่อเพิ่มเครื่องหมายน้ําในเอกสาร Word ใน ASP.NET Core มันรวมถึงคําแนะนําขั้นตอนรายละเอียดการตั้งค่าและคําแนะนําการใช้งานสําหรับแพลตฟอร์มหลัก
ขั้นตอนในการเพิ่มเครื่องหมายน้ําไปยังเอกสาร Word โดยใช้ REST API
- สร้างโครงการ ASP.NET Core Web API เพื่อเพิ่มเครื่องหมายน้ํา
- ติดตั้ง Aspose.Words สําหรับ .NET โดย NuGet Package Manager
- สร้างตัวควบคุมที่มีจุดปลายเพื่อยอมรับไฟล์ Word และพารามิเตอร์ข้อความหรือภาพ watermark
- เขียนรหัสเพื่อเพิ่มข้อความหรือภาพ watermark ไปยังเอกสาร Word
- ตรวจสอบ API ในท้องถิ่นโดยใช้เครื่องมือเช่น Postman หรือ cURL
- พัฒนา API ในสภาพแวดล้อม Windows, Linux หรือ macOS
- การตั้งค่า Nginx หรือ IIS สําหรับการติดตั้งการผลิต
ขั้นตอนเหล่านี้ให้วิธีการที่ละเอียดเพื่อสร้างและแสดงให้เห็น API watermark
ตัวอย่างรหัส: REST API สําหรับการเพิ่มเครื่องหมายน้ํา
ต่อไปนี้เป็นร่องรัดรัดรัดรัดรัดรัดรัดรัดรัดรัดรัดรัดรัดรัดรัดรัด
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 Runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
- โพสต์ใบสมัคร:
dotnet publish -c Release -o publish
- การตั้งค่า Nginx ไปยัง traffic proxy สําหรับเซิร์ฟเวอร์ Kestrel
แม็กซ์
- ติดตั้ง .NET runtime จาก เว็บไซต์ทางการ .
- โพสต์และเรียกใช้:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
ปัญหาทั่วไปและข้อกําหนด
- ข้อผิดพลาดการป้อนที่ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าไฟล์ที่อัพโหลดเป็นเอกสาร Word ที่ถูกต้องและข้อความ watermark ไม่ว่างเปล่า
- ข้อผิดพลาดที่ปฏิเสธการเข้าถึง: ใน Linux/macOS ให้อนุญาตที่เหมาะสมไปยังโฟลเดอร์แอพลิเคชัน
chmod -R 755 /path/to/app
- ปัญหาประสิทธิภาพ: สําหรับไฟล์ขนาดใหญ่เพิ่มประสิทธิภาพการใช้งานของหน่วยความจําโดยการประมวลผลไฟล์โดยตรงจากไดรฟ์และไม่ใช่การไหล
คู่มือนี้ได้แสดงให้เห็นวิธีสร้าง API REST เพื่อเพิ่มเครื่องหมายน้ําในเอกสาร Word โดยใช้ Aspose.Words สําหรับ .NET และใช้มันบนแพลตฟอร์มหลักทั้งหมด