Expose a REST API to Watermark Word Documents

Cách Thêm Đánh Dấu Nước vào Tài Liệu Word qua ASP.NET Core REST API

Hướng dẫn này chỉ cho bạn cách cách triển khai một REST API để thêm watermark vào tài liệu Word trong ASP.NET Core. Nó bao gồm hướng dẫn từng bước, chi tiết cài đặt và hướng dẫn triển khai cho các nền tảng chính.

Các bước để thêm watermarks vào tài liệu Word qua REST API

  1. Thiết lập một dự án ASP.NET Core Web API để thêm watermarks.
  2. Cài đặt Aspose.Words for .NET qua NuGet Package Manager.
  3. Tạo một controller với một endpoint để nhận các tệp Word và các tham số văn bản hoặc hình ảnh watermark.
  4. Viết mã để thêm watermark dạng văn bản hoặc hình ảnh vào tài liệu Word.
  5. Kiểm thử API cục bộ bằng các công cụ như Postman hoặc cURL.
  6. Triển khai API trên môi trường Windows, Linux hoặc macOS.
  7. Cấu hình Nginx hoặc IIS cho việc triển khai sản xuất.

Các bước này cung cấp một phương pháp chi tiết để tạo và mở rộng API watermark.

Ví dụ mã: REST API để Thêm watermark.

Dưới đây là một đoạn mã có thể chạy được để triển khai một REST API thêm dấu watermark dạng văn bản vào tài liệu 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}");
            }
        }
    }
}

Triển khai trên các nền tảng chính

Windows

  1. Cài đặt IIS và cấu hình trang web để trỏ tới thư mục ứng dụng đã xuất bản.
  2. Xuất bản ứng dụng:

Linux

  1. Cài đặt runtime ASP.NET Core:
  2. Xuất bản ứng dụng:
  3. Cấu hình Nginx để proxy lưu lượng tới máy chủ Kestrel.

macOS

  1. Cài đặt .NET runtime từ trang web chính thức .
  2. Xuất bản và chạy:

Các vấn đề thường gặp và cách khắc phục

  1. Lỗi Đầu vào Không hợp lệ: Đảm bảo rằng tệp đã tải lên là tài liệu Word hợp lệ và văn bản watermark không rỗng.
  2. Lỗi Từ chối Truy cập: Trên Linux/macOS, cấp quyền thích hợp cho thư mục ứng dụng.
  3. Vấn đề hiệu suất: Đối với các tệp lớn, tối ưu hóa việc sử dụng bộ nhớ bằng cách xử lý tệp trực tiếp từ đĩa thay vì qua luồng.

Hướng dẫn này đã chỉ cho bạn cách tạo một REST API để thêm watermarks vào tài liệu Word bằng cách sử dụng Aspose.Words for .NET và triển khai nó trên tất cả các nền tảng chính.

 Tiếng Việt