Expose eine REST-API zum Wasserzeichen von Word-Dokumenten
So fügen Sie Wasserzeichen zu Word-Dokumenten über die ASP.NET Core REST-API hinzu
Dieses Tutorial zeigt Ihnen, wie Sie eine REST-API zum Hinzufügen von Wasserzeichen zu Word-Dokumenten in ASP.NET Core bereitstellen. Es enthält Schritt-für-Schritt-Anleitungen, Einrichtungshinweise und Bereitstellungsrichtlinien für die wichtigsten Plattformen.
Schritte zum Hinzufügen von Wasserzeichen zu Word-Dokumenten über die REST-API
- Richten Sie ein ASP.NET Core Web API-Projekt zum Hinzufügen von Wasserzeichen ein.
- Installieren Sie Aspose.Words für .NET über den NuGet-Paket-Manager.
- Erstellen Sie einen Controller mit einem Endpunkt, um Word-Dateien und Wasserzeichen-Text- oder Bildparameter zu akzeptieren.
- Schreiben Sie Code, um Text- oder Bildwasserzeichen zu Word-Dokumenten hinzuzufügen.
- Testen Sie die API lokal mit Tools wie Postman oder cURL.
- Stellen Sie die API in Windows-, Linux- oder macOS-Umgebungen bereit.
- Konfigurieren Sie Nginx oder IIS für die Produktionsbereitstellung.
Diese Schritte bieten einen detaillierten Ansatz zur Erstellung und Bereitstellung der Wasserzeichen-API.
Codebeispiel: REST-API zum Hinzufügen von Wasserzeichen
Nachfolgend finden Sie einen ausführbaren Codeausschnitt zur Bereitstellung einer REST-API, die Textwasserzeichen zu Word-Dokumenten hinzufügt:
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("Bitte laden Sie ein gültiges Word-Dokument hoch und geben Sie einen Wasserzeichen-Text an.");
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, $"Interner Serverfehler: {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);
}
}
}
}
Bereitstellung auf wichtigen Plattformen
Windows
- Installieren Sie IIS und konfigurieren Sie die Site, um auf den veröffentlichten Anwendungsordner zu verweisen.
- Veröffentlichen Sie die Anwendung:
dotnet publish -c Release -o publish
Linux
- Installieren Sie die ASP.NET Core-Laufzeit:
sudo apt-get install -y aspnetcore-runtime-7.0
- Veröffentlichen Sie die Anwendung:
dotnet publish -c Release -o publish
- Konfigurieren Sie Nginx, um den Verkehr an den Kestrel-Server weiterzuleiten.
macOS
- Installieren Sie die .NET-Laufzeit von der offiziellen Seite.
- Veröffentlichen und ausführen:
dotnet publish -c Release -o publish cd publish dotnet WatermarkAPI.dll
Häufige Probleme und Lösungen
- Ungültige Eingabefehler: Stellen Sie sicher, dass die hochgeladene Datei ein gültiges Word-Dokument ist und der Wasserzeichen-Text nicht leer ist.
- Zugriff verweigert Fehler: Gewähren Sie unter Linux/macOS die entsprechenden Berechtigungen für den Anwendungsordner.
chmod -R 755 /path/to/app
- Leistungsprobleme: Optimieren Sie den Speicherverbrauch bei großen Dateien, indem Sie Dateien direkt von der Festplatte anstelle von Streams verarbeiten.
Dieser Leitfaden hat Ihnen gezeigt, wie Sie eine REST-API zum Hinzufügen von Wasserzeichen zu Word-Dokumenten mit Aspose.Words für .NET erstellen und auf allen wichtigen Plattformen bereitstellen.