Expose a REST API to Watermark Word Documents

# Cara Menambahkan Watermark ke Dokumen Word melalui REST API ASP.NET Core

Tutorial ini membimbing Anda tentang bagaimana untuk mendedahkan REST API untuk menambahkan watermark ke dokumen Word dalam ASP.NET Core. Ini termasuk petunjuk langkah demi langkah, rincian pengaturan, dan petunjuk pelaksanaan untuk platform utama.

Langkah-langkah untuk Menambahkan Watermarks ke Word Documents melalui REST API

  • Menetapkan proyek ASP.NET Core Web API untuk menambahkan watermark.
  • Instalasi Aspose.Words untuk .NET melalui NuGet Package Manager.
  • Buat kontrol dengan titik akhir untuk menerima file Word dan parameter teks atau gambar watermark.
  • Tulis kode untuk menambahkan teks atau gambar watermark ke dokumen Word.
  • Uji API secara lokal menggunakan alat seperti Postman atau cURL.
  • Mengimplementasikan API di lingkungan Windows, Linux, atau macOS.
  • Mengkonfigurasi Nginx atau IIS untuk pengembangan produksi.

Langkah-langkah ini memberikan pendekatan terperinci untuk membuat dan mendedahkan API watermark.

Contoh kode: REST API untuk Menambahkan Watermarks

Di bawah ini adalah skrip kode yang dapat diluncurkan untuk mendedahkan REST API yang menambahkan watermark teks ke dokumen 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("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);
            }
        }
    }
}

Beroperasi di Platform Utama

Windows

  • Instal IIS dan mengkonfigurasi situs untuk menunjuk ke folder aplikasi yang diterbitkan.
  • Untuk menerbitkan aplikasi:
dotnet publish -c Release -o publish

Linux

  • Menginstal ASP.NET Core Runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
  • Untuk menerbitkan aplikasi:
dotnet publish -c Release -o publish
  • Mengkonfigurasi Nginx untuk lalu lintas proxy ke server Kestrel.

macos

  • Menginstal .NET Runtime dari Situs resmi .
  • Penerbitan dan Run:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

Masalah dan Fix

  • Invalid Input Errors: Pastikan file yang diunggah adalah dokumen Word yang valid dan teks watermark tidak kosong.
  • Access Denied Errors: Pada Linux/macOS, berikan izin yang tepat untuk folder aplikasi.
chmod -R 755 /path/to/app
  • Performance Problems: Untuk file besar, mengoptimalkan penggunaan memori dengan memproses file langsung dari cakera dan bukannya aliran.

Panduan ini telah menunjukkan kepada Anda bagaimana membuat REST API untuk menambahkan watermark ke dokumen Word menggunakan Aspose.Words untuk .NET dan mengimplementasikannya di semua platform utama.

 Indonesia