Expose a REST API to Watermark Word Documents

ASP.NET Core REST API를 통해 Word 문서에 워터마크를 추가하는 방법

이 튜토리얼은 다음에 대해 안내합니다 ASP.NET Core에서 Word 문서에 워터마크를 추가하기 위한 REST API를 노출하는 방법. 단계별 지침, 설정 세부 정보 및 주요 플랫폼에 대한 배포 가이드라인을 포함합니다.

REST API를 통해 Word 문서에 워터마크를 추가하는 단계

  1. 워터마크 추가를 위한 ASP.NET Core Web API 프로젝트를 설정합니다.
  2. 설치 Aspose.Words for .NET NuGet Package Manager를 통해.
  3. Word 파일과 워터마크 텍스트 또는 이미지 매개변수를 수락하는 엔드포인트가 있는 컨트롤러를 생성합니다.
  4. Word 문서에 텍스트 또는 이미지 워터마크를 추가하는 코드를 작성합니다.
  5. Postman이나 cURL과 같은 도구를 사용하여 로컬에서 API를 테스트합니다.
  6. API를 Windows, Linux, macOS 환경에 배포합니다.
  7. 프로덕션 배포를 위해 Nginx 또는 IIS를 구성합니다.

이 단계들은 생성하고 노출하기 위한 상세한 접근 방식을 제공합니다. 워터마크 API.

코드 예시: 워터마크 추가를 위한 REST API

아래는 Word 문서에 텍스트 워터마크를 추가하는 REST API를 노출하는 실행 가능한 코드 스니펫입니다:

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. ASP.NET Core 런타임을 설치합니다:
  2. 애플리케이션을 게시합니다:
  3. Nginx를 구성하여 트래픽을 Kestrel 서버로 프록시합니다.

macOS

  1. 다음에서 .NET 런타임을 설치하십시오. 공식 사이트 .
  2. 게시하고 실행합니다:

일반적인 문제 및 해결 방법

  1. 잘못된 입력 오류: 업로드된 파일이 유효한 Word 문서이며 워터마크 텍스트가 비어 있지 않은지 확인하십시오.
  2. 접근 거부 오류: Linux/macOS에서 애플리케이션 폴더에 적절한 권한을 부여하십시오.
  3. 성능 문제: 대용량 파일의 경우, 스트림 대신 디스크에서 직접 파일을 처리하여 메모리 사용량을 최적화하십시오.

이 가이드는 워드 문서에 워터마크를 추가하는 REST API를 만드는 방법을 보여줍니다 using Aspose.Words for .NET 그리고 모든 주요 플랫폼에 배포합니다.

 한국어