Expose a REST API to Watermark Word Documents
# Come Aggiungere Filigrane ai Documenti Word tramite ASP.NET Core REST API
Ce tutoriel vous guide sur comment exposer une API REST pour ajouter des marques d’eau aux documents Word dans ASP.NET Core. Il comprend des instructions étape par étape, des détails de configuration et des lignes directrices de déploiement pour les principales plateformes.
Étapes pour ajouter des marques d’eau aux documents Word via l’API REST
- Créez un projet ASP.NET Core Web API pour ajouter des marques d’eau.
- Installation Aspose.Words per .NET par NuGet Package Manager.
- Créez un contrôleur avec un endpoint pour accepter les fichiers Word et les paramètres de texte ou d’image.
- Écrivez le code pour ajouter du texte ou de l’image à des marques d’eau dans les documents Word.
- Testez l’API localement en utilisant des outils tels que Postman ou cURL.
- Déployer l’API sur Windows, Linux ou macOS environnements.
- Configurez Nginx ou IIS pour le déploiement de la production.
Ces étapes fournissent une approche détaillée de la création et de l’exposition de l’API marque d’eau.
Exemple de code: REST API pour ajouter des marques d’eau
Ci-dessous est un snippet de code courant pour exposer une API REST qui ajoute des marques d’eau 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("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);
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, $"Internal server error: {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 indiquer le dossier d’application publié.
- Publier la demande :
dotnet publish -c Release -o publish
Linux
- Installer le temps de fonctionnement ASP.NET Core :
sudo apt-get install -y aspnetcore-runtime-7.0
- Publier la demande :
dotnet publish -c Release -o publish
- Configurez Nginx pour proxy sur le serveur Kestrel.
Le macOS
- Installez le temps de fonctionnement .NET à partir du Site officiel .
- Publier et courir :
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
Problèmes communs et fixations
- Errors d’entrée invalides: Assurez-vous que le fichier téléchargé est un document Word valide et que le texte d’étiquette n’est pas vide.
- Access Denied Errors: Sur Linux/macOS, donnez les autorisations appropriées au dossier d’application.
chmod -R 755 /path/to/app
- Problèmes de performance: Pour les fichiers grands, optimisez l’utilisation de la mémoire en traitant les fichiers directement sur le disque plutôt que sur les flux.
Ce guide vous a montré comment créer une API REST pour ajouter des marques d’eau aux documents Word en utilisant Aspose.Words pour .NET et le déployer sur toutes les principales plateformes.