Exposer une API REST pour le filigrane des documents Word
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.
- Installez Aspose.Words pour .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 de texte ou d’image aux documents Word.
- Testez l’API localement à l’aide d’outils comme Postman ou cURL.
- Déployez l’API sur des environnements Windows, Linux ou macOS.
- Configurez Nginx ou IIS pour le déploiement en production.
Ces étapes fournissent une approche détaillée pour créer et exposer l’API de filigrane.
Exemple de code : API REST pour ajouter des filigranes
Voici un extrait de code exécutable pour exposer une API REST qui ajoute des filigranes de texte aux documents 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("Veuillez télécharger un document Word valide et fournir un texte de filigrane.");
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, $"Erreur interne du serveur : {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);
}
}
}
}
Déploiement sur les principales plateformes
Windows
- Installez IIS et configurez le site pour pointer vers le dossier de l’application publiée.
- Publiez l’application :
dotnet publish -c Release -o publish
Linux
- Installez le runtime ASP.NET Core :
sudo apt-get install -y aspnetcore-runtime-7.0
- Publiez l’application :
dotnet publish -c Release -o publish
- Configurez Nginx pour proxy le trafic vers le serveur Kestrel.
macOS
- Installez le runtime .NET depuis le site officiel.
- Publiez et exécutez :
dotnet publish -c Release -o publish cd publish dotnet WatermarkAPI.dll
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 de filigrane n’est pas vide.
- Erreurs d’accès refusé : Sur Linux/macOS, accordez les permissions appropriées au dossier de l’application.
chmod -R 755 /path/to/app
- Problèmes de performance : Pour les fichiers volumineux, optimisez l’utilisation de la mémoire en traitant les fichiers directement depuis le disque plutôt que depuis des flux.
Ce guide vous a montré comment créer une API REST pour ajouter des filigranes aux documents Word en utilisant Aspose.Words pour .NET et la déployer sur toutes les principales plateformes.