Expose a REST API to Watermark Word Documents
วิธีเพิ่มลายน้ำลงในเอกสาร Word ผ่าน ASP.NET Core REST API
บทแนะนำนี้ชี้แนะคุณเกี่ยวกับ วิธีเปิดเผย REST API สำหรับเพิ่มลายน้ำในเอกสาร Word ด้วย ASP.NET Core. มีคำแนะนำแบบขั้นตอนต่อขั้นตอน รายละเอียดการตั้งค่า และแนวทางการปรับใช้สำหรับแพลตฟอร์มหลัก.
ขั้นตอนการเพิ่มลายน้ำลงในเอกสาร Word ผ่าน REST API
- ตั้งค่าโครงการ ASP.NET Core Web API สำหรับการเพิ่มลายน้ำ.
- ติดตั้ง Aspose.Words for .NET ผ่าน NuGet Package Manager.
- สร้างคอนโทรลเลอร์พร้อมเอ็นด์พอยต์เพื่อรับไฟล์ Word และพารามิเตอร์ข้อความหรือรูปภาพลายน้ำ.
- เขียนโค้ดเพื่อเพิ่มลายน้ำข้อความหรือรูปภาพลงในเอกสาร Word.
- ทดสอบ API ในเครื่องโดยใช้เครื่องมือเช่น Postman หรือ cURL.
- ปรับใช้ API บนสภาพแวดล้อม Windows, Linux หรือ macOS.
- กำหนดค่า Nginx หรือ IIS สำหรับการปรับใช้ในสภาพแวดล้อมการผลิต.
ขั้นตอนเหล่านี้ให้แนวทางโดยละเอียดในการสร้างและเปิดเผย API ลายน้ำ.
ตัวอย่างโค้ด: REST API สำหรับการเพิ่มลายน้ำ
ด้านล่างเป็นโค้ดสแนปเปตที่สามารถรันได้สำหรับการเปิดเผย REST API ที่เพิ่มลายน้ำข้อความลงในเอกสาร Word:
using System.IO;
using System.Threading.Tasks;
using Aspose.Words;
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);
TextWatermarkOptions options = new TextWatermarkOptions
{
FontFamily = "Arial",
FontSize = 40,
Color = System.Drawing.Color.LightGray,
Layout = WatermarkLayout.Diagonal,
IsSemitrasparent = true
};
doc.Watermark.SetText(watermarkText, options);
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}");
}
}
}
}การปรับใช้บนแพลตฟอร์มหลัก
Windows
- ติดตั้ง IIS และกำหนดค่าไซต์ให้ชี้ไปยังโฟลเดอร์แอปพลิเคชันที่เผยแพร่.
- เผยแพร่แอปพลิเคชัน:
Linux
- ติดตั้ง runtime ของ ASP.NET Core:
- เผยแพร่แอปพลิเคชัน:
- กำหนดค่า Nginx เพื่อทำ proxy การจราจรไปยังเซิร์ฟเวอร์ Kestrel.
macOS
- ติดตั้ง runtime .NET จาก เว็บไซต์อย่างเป็นทางการ .
- เผยแพร่และรัน:
ปัญหาทั่วไปและวิธีแก้ไข
- ข้อผิดพลาดการป้อนข้อมูลไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าไฟล์ที่อัปโหลดเป็นเอกสาร Word ที่ถูกต้องและข้อความลายน้ำไม่ว่างเปล่า.
- ข้อผิดพลาดการเข้าถึงถูกปฏิเสธ: บน Linux/macOS ให้มอบสิทธิ์ที่เหมาะสมแก่โฟลเดอร์แอปพลิเคชัน.
- ปัญหาประสิทธิภาพ: สำหรับไฟล์ขนาดใหญ่ ให้เพิ่มประสิทธิภาพการใช้ memory usage โดยประมวลผลไฟล์โดยตรงจาก disk แทนการใช้ streams.
คู่มือนี้ได้แสดงให้คุณเห็นวิธีสร้าง REST API สำหรับเพิ่มลายน้ำลงในเอกสาร Word โดยใช้ Aspose.Words for .NET และปรับใช้บนแพลตฟอร์มหลักทั้งหมด.