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

  1. Richten Sie ein ASP.NET Core Web API-Projekt zum Hinzufügen von Wasserzeichen ein.
  2. Installieren Sie Aspose.Words für .NET über den NuGet-Paket-Manager.
  3. Erstellen Sie einen Controller mit einem Endpunkt, um Word-Dateien und Wasserzeichen-Text- oder Bildparameter zu akzeptieren.
  4. Schreiben Sie Code, um Text- oder Bildwasserzeichen zu Word-Dokumenten hinzuzufügen.
  5. Testen Sie die API lokal mit Tools wie Postman oder cURL.
  6. Stellen Sie die API in Windows-, Linux- oder macOS-Umgebungen bereit.
  7. 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

  1. Installieren Sie IIS und konfigurieren Sie die Site, um auf den veröffentlichten Anwendungsordner zu verweisen.
  2. Veröffentlichen Sie die Anwendung:
    dotnet publish -c Release -o publish

Linux

  1. Installieren Sie die ASP.NET Core-Laufzeit:
    sudo apt-get install -y aspnetcore-runtime-7.0
  2. Veröffentlichen Sie die Anwendung:
    dotnet publish -c Release -o publish
  3. Konfigurieren Sie Nginx, um den Verkehr an den Kestrel-Server weiterzuleiten.

macOS

  1. Installieren Sie die .NET-Laufzeit von der offiziellen Seite.
  2. Veröffentlichen und ausführen:
    dotnet publish -c Release -o publish
    cd publish
    dotnet WatermarkAPI.dll

Häufige Probleme und Lösungen

  1. Ungültige Eingabefehler: Stellen Sie sicher, dass die hochgeladene Datei ein gültiges Word-Dokument ist und der Wasserzeichen-Text nicht leer ist.
  2. Zugriff verweigert Fehler: Gewähren Sie unter Linux/macOS die entsprechenden Berechtigungen für den Anwendungsordner.
    chmod -R 755 /path/to/app
  3. 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.

 Deutsch