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

แม็กซ์

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 และใช้มันบนแพลตฟอร์มหลักทั้งหมด

 แบบไทย