Expose a REST API untuk Watermark Dokumen Word
Cara Menambahkan Watermark ke Dokumen Word melalui REST API ASP.NET Core
Tutorial ini memandu Anda tentang cara mengekspos REST API untuk menambahkan watermark ke dokumen Word di ASP.NET Core. Ini mencakup instruksi langkah demi langkah, detail pengaturan, dan pedoman penyebaran untuk platform utama.
Langkah-langkah Menambahkan Watermark ke Dokumen Word melalui REST API
- Siapkan proyek ASP.NET Core Web API untuk menambahkan watermark.
- Instal Aspose.Words untuk .NET melalui NuGet Package Manager.
- Buat kontroler dengan endpoint untuk menerima file Word dan parameter teks atau gambar watermark.
- Tulis kode untuk menambahkan watermark teks atau gambar ke dokumen Word.
- Uji API secara lokal menggunakan alat seperti Postman atau cURL.
- Sebarkan API di lingkungan Windows, Linux, atau macOS.
- Konfigurasi Nginx atau IIS untuk penyebaran 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 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("Silakan unggah dokumen Word yang valid dan berikan teks 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, $"Kesalahan server internal: {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);
}
}
}
}
Penyebaran di Platform Utama
Windows
- Instal IIS dan konfigurasi situs untuk menunjuk ke folder aplikasi yang diterbitkan.
- Publikasikan aplikasi:
dotnet publish -c Release -o publish
Linux
- Instal runtime ASP.NET Core:
sudo apt-get install -y aspnetcore-runtime-7.0
- Publikasikan aplikasi:
dotnet publish -c Release -o publish
- Konfigurasi Nginx untuk memproxy lalu lintas ke server Kestrel.
macOS
- Instal runtime .NET dari situs resmi.
- Publikasikan dan jalankan:
dotnet publish -c Release -o publish cd publish dotnet WatermarkAPI.dll
Masalah Umum dan Perbaikan
- Kesalahan Input Tidak Valid: Pastikan file yang diunggah adalah dokumen Word yang valid dan teks watermark tidak kosong.
- Kesalahan Akses Ditolak: Di Linux/macOS, berikan izin yang tepat ke folder aplikasi.
chmod -R 755 /path/to/app
- Masalah Kinerja: Untuk file besar, optimalkan penggunaan memori dengan memproses file langsung dari disk daripada dari aliran.
Panduan ini telah menunjukkan kepada Anda cara membuat REST API untuk menambahkan watermark ke dokumen Word menggunakan Aspose.Words untuk .NET dan menyebarkannya di semua platform utama.