Expose a REST API to Watermark Word Documents
Cara Menambahkan Watermark ke Dokumen Word melalui ASP.NET Core REST API
Tutorial ini membimbing Anda tentang cara mengekspos REST API untuk menambahkan watermark ke dokumen Word di ASP.NET Core. Ini mencakup petunjuk langkah demi langkah, detail pengaturan, dan panduan penyebaran untuk platform utama.
Langkah-langkah untuk Menambahkan Waterwater ke Dokumen Word melalui REST API
- Siapkan proyek ASP.NET Core Web API untuk menambahkan watermark.
- Instal Aspose.Words for .NET melalui NuGet Package Manager.
- Buat sebuah controller dengan endpoint untuk menerima file Word serta parameter teks atau gambar watermark.
- Tuliskan kode untuk menambahkan watermark teks atau gambar ke dokumen Word.
- Uji API secara lokal menggunakan alat seperti Postman atau cURL.
- Deploy API pada lingkungan Windows, Linux, atau macOS.
- Konfigurasikan Nginx atau IIS untuk deployment produksi.
Langkah-langkah ini memberikan pendekatan terperinci untuk membuat dan mengekspos API watermark.
Contoh Kode: REST API untuk Menambahkan Watermark
Berikut adalah cuplikan kode yang dapat dijalankan untuk mengekspos REST API yang menambahkan watermark teks ke dokumen 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}");
}
}
}
}Penyebaran di Platform Utama
Windows
- Instal IIS dan konfigurasikan situs untuk mengarah ke folder aplikasi yang dipublikasikan.
- Publikasikan aplikasi:
Linux
- Instal runtime ASP.NET Core:
- Publikasikan aplikasi:
- Konfigurasikan Nginx untuk mem-proxy lalu lintas ke server Kestrel.
macOS
- Instal runtime .NET dari situs resmi .
- Publikasikan dan jalankan:
Masalah Umum dan Solusi
- Kesalahan Input Tidak Valid: Pastikan file yang diunggah adalah dokumen Word yang valid dan teks watermark tidak kosong.
- Kesalahan Akses Ditolak: Pada Linux/macOS, berikan izin yang tepat pada folder aplikasi.
- Masalah Kinerja: Untuk file besar, optimalkan penggunaan memori dengan memproses file langsung dari disk daripada aliran.
Panduan ini telah menunjukkan cara membuat REST API untuk menambahkan watermark pada dokumen Word menggunakan Aspose.Words for .NET dan menyebarkannya di semua platform utama.