Triển khai một API REST để Đánh Dấu Tài Liệu Word

Cách Thêm Watermark vào Tài Liệu Word thông qua ASP.NET Core REST API

Hướng dẫn này sẽ hướng dẫn bạn về 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 các hướng dẫn từng bước, chi tiết thiết lập và hướng dẫn triển khai cho các nền tảng chính.

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

Các bước này cung cấp một cách tiếp cận chi tiết để tạo và triển khai watermark API.

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

Dưới đây là đoạn mã có thể chạy được để triển khai một REST API thêm watermark văn bản vào tài liệu Word:

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("Vui lòng tải lên một tài liệu Word hợp lệ và cung cấp văn bản watermark.");

            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, $"Lỗi máy chủ nội bộ: {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);
            }
        }
    }
}

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ỏ đến thư mục ứng dụng đã xuất bản.
  2. Xuất bản ứng dụng:
    dotnet publish -c Release -o publish

Linux

  1. Cài đặt runtime ASP.NET Core:
    sudo apt-get install -y aspnetcore-runtime-7.0
  2. Xuất bản ứng dụng:
    dotnet publish -c Release -o publish
  3. Cấu hình Nginx để chuyển tiếp lưu lượng đến máy chủ Kestrel.

macOS

  1. Cài đặt runtime .NET từ trang chính thức.
  2. Xuất bản và chạy:
    dotnet publish -c Release -o publish
    cd publish
    dotnet WatermarkAPI.dll

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à một tài liệu Word hợp lệ và văn bản watermark không trố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.
    chmod -R 755 /path/to/app
  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ì từ stream.

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

 Tiếng Việt