Expose a REST API to Watermark Word Documents
Come aggiungere filigrane ai documenti Word tramite API REST ASP.NET Core
Questo tutorial ti guida su come esporre un’API REST per aggiungere filigrane ai documenti Word in ASP.NET Core. Include istruzioni passo-passo, dettagli di configurazione e linee guida per il deployment su piattaforme principali.
Passaggi per aggiungere filigrane ai documenti Word tramite REST API
- Configura un progetto ASP.NET Core Web API per aggiungere filigrane.
- Installa Aspose.Words for .NET tramite NuGet Package Manager.
- Crea un controller con un endpoint per accettare file Word e parametri di testo o immagine per il watermark.
- Scrivi il codice per aggiungere watermark di testo o immagine ai documenti Word.
- Testa l’API localmente usando strumenti come Postman o cURL.
- Distribuisci l’API su ambienti Windows, Linux o macOS.
- Configura Nginx o IIS per il deployment in produzione.
Questi passaggi forniscono un approccio dettagliato per creare ed esporre il API di filigrana.
Esempio di codice: REST API per aggiungere Watermarks
Di seguito è un frammento di codice eseguibile per esporre una REST API che aggiunge watermark di testo ai documenti 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}");
}
}
}
}Distribuzione su piattaforme principali
Windows
- Installa IIS e configura il sito per puntare alla cartella dell’applicazione pubblicata.
- Pubblica l’applicazione:
Linux
- Installa il runtime ASP.NET Core:
- Pubblica l’applicazione:
- Configura Nginx per fare da proxy al traffico verso il server Kestrel.
macOS
- Installa il runtime .NET dal sito ufficiale .
- Pubblica ed esegui:
Problemi comuni e soluzioni
- Errori di Input Non Validi: Assicurati che il file caricato sia un documento Word valido e che il testo del watermark non sia vuoto.
- Errori di Accesso Negato: Su Linux/macOS, concedi le autorizzazioni appropriate alla cartella dell’applicazione.
- Problemi di prestazioni: Per i file di grandi dimensioni, ottimizza l’uso della memoria elaborando i file direttamente dal disco anziché da stream.
Questa guida ti ha mostrato come creare un’API REST per aggiungere filigrane ai documenti Word utilizzando Aspose.Words for .NET e distribuirla su tutte le principali piattaforme.