Expose a REST API to Watermark Word Documents
Comment ajouter des filigranes aux documents Word via l'API REST ASP.NET Core
Ce tutoriel vous guide sur comment exposer une API REST pour ajouter des filigranes aux documents Word dans ASP.NET Core. Il comprend des instructions étape par étape, des détails de configuration et des directives de déploiement pour les principales plateformes.
Étapes pour ajouter des filigranes aux documents Word via l’API REST
- Configurez un projet ASP.NET Core Web API pour ajouter des filigranes.
- Installer Aspose.Words for .NET via le gestionnaire de packages NuGet.
- Créez un contrôleur avec un point de terminaison pour accepter les fichiers Word et les paramètres de texte ou d’image de filigrane.
- Écrivez du code pour ajouter des filigranes texte ou image aux documents Word.
- Testez l’API localement en utilisant des outils comme Postman ou cURL.
- Déployez l’API sur des environnements Windows, Linux ou macOS.
- Configurer Nginx ou IIS pour le déploiement en production.
Ces étapes offrent une approche détaillée pour créer et exposer le API de filigrane.
Exemple de code : API REST pour ajouter des filigranes.
Ci-dessous se trouve un extrait de code exécutable pour exposer une API REST qui ajoute des filigranes texte aux documents 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}");
}
}
}
}Déploiement sur les principales plateformes
Windows
- Installez IIS et configurez le site pour qu’il pointe vers le dossier de l’application publiée.
- Publiez l’application :
Linux
- Installez le runtime ASP.NET Core :
- Publiez l’application :
- Configurez Nginx pour proxy le trafic vers le serveur Kestrel.
macOS
- Installez le runtime .NET depuis le site officiel .
- Publier et exécuter :
Problèmes courants et solutions
- Erreurs d’entrée invalides: Assurez-vous que le fichier téléchargé est un document Word valide et que le texte du filigrane n’est pas vide.
- Erreurs d’accès refusé: Sur Linux/macOS, accordez les permissions appropriées au dossier de l’application.
- Problèmes de performance: Pour les gros fichiers, optimisez l’utilisation de la mémoire en traitant les fichiers directement depuis le disque plutôt que via des flux.
Ce guide vous a montré comment créer une REST API pour ajouter des filigranes aux documents Word en utilisant Aspose.Words for .NET et le déployer sur toutes les principales plateformes.