Expose a REST API to Watermark Word Documents

วิธีเพิ่มลายน้ำลงในเอกสาร Word ผ่าน ASP.NET Core REST API

บทแนะนำนี้ชี้แนะคุณเกี่ยวกับ วิธีเปิดเผย REST API สำหรับเพิ่มลายน้ำในเอกสาร Word ด้วย ASP.NET Core. มีคำแนะนำแบบขั้นตอนต่อขั้นตอน รายละเอียดการตั้งค่า และแนวทางการปรับใช้สำหรับแพลตฟอร์มหลัก.

ขั้นตอนการเพิ่มลายน้ำลงในเอกสาร Word ผ่าน REST API

  1. ตั้งค่าโครงการ ASP.NET Core Web API สำหรับการเพิ่มลายน้ำ.
  2. ติดตั้ง Aspose.Words for .NET ผ่าน NuGet Package Manager.
  3. สร้างคอนโทรลเลอร์พร้อมเอ็นด์พอยต์เพื่อรับไฟล์ Word และพารามิเตอร์ข้อความหรือรูปภาพลายน้ำ.
  4. เขียนโค้ดเพื่อเพิ่มลายน้ำข้อความหรือรูปภาพลงในเอกสาร Word.
  5. ทดสอบ API ในเครื่องโดยใช้เครื่องมือเช่น Postman หรือ cURL.
  6. ปรับใช้ API บนสภาพแวดล้อม Windows, Linux หรือ macOS.
  7. กำหนดค่า 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

  1. ติดตั้ง IIS และกำหนดค่าไซต์ให้ชี้ไปยังโฟลเดอร์แอปพลิเคชันที่เผยแพร่.
  2. เผยแพร่แอปพลิเคชัน:

Linux

  1. ติดตั้ง runtime ของ ASP.NET Core:
  2. เผยแพร่แอปพลิเคชัน:
  3. กำหนดค่า Nginx เพื่อทำ proxy การจราจรไปยังเซิร์ฟเวอร์ Kestrel.

macOS

  1. ติดตั้ง runtime .NET จาก เว็บไซต์อย่างเป็นทางการ .
  2. เผยแพร่และรัน:

ปัญหาทั่วไปและวิธีแก้ไข

  1. ข้อผิดพลาดการป้อนข้อมูลไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าไฟล์ที่อัปโหลดเป็นเอกสาร Word ที่ถูกต้องและข้อความลายน้ำไม่ว่างเปล่า.
  2. ข้อผิดพลาดการเข้าถึงถูกปฏิเสธ: บน Linux/macOS ให้มอบสิทธิ์ที่เหมาะสมแก่โฟลเดอร์แอปพลิเคชัน.
  3. ปัญหาประสิทธิภาพ: สำหรับไฟล์ขนาดใหญ่ ให้เพิ่มประสิทธิภาพการใช้ memory usage โดยประมวลผลไฟล์โดยตรงจาก disk แทนการใช้ streams.

คู่มือนี้ได้แสดงให้คุณเห็นวิธีสร้าง REST API สำหรับเพิ่มลายน้ำลงในเอกสาร Word โดยใช้ Aspose.Words for .NET และปรับใช้บนแพลตฟอร์มหลักทั้งหมด.

 แบบไทย