Expose a REST API to Watermark Word Documents

# So fügen Sie Wasserzeichen zu Word-Dokumenten über die ASP.NET Core REST-API hinzu

Dieser Tutorial leitet Sie auf Wie Sie eine REST API für die Einnahme von Wassermarken zu Word-Dokumenten in ASP.NET Core. Es enthält Schritt für Schritt Anweisungen, Setup-Details und Layout-Richtlinien für große Plattformen.

Schritte, um Wassermarken zu Word-Dokumenten über die REST API hinzuzufügen

  • Installieren Sie ein ASP.NET Core Web API-Projekt, um Wasserzeichen hinzuzufügen.
  • Install Aspose.Words für .NET via NuGet Package Manager.
  • Erstellen Sie einen Controller mit einem Endpunkt, um Word-Dateien und Wasserzeichentext oder Bildparameter zu akzeptieren.
  • Schreiben Sie Code, um Text oder Bild Wasserzeichen in Word-Dokumente hinzuzufügen.
  • Prüfen Sie die API lokal mit Werkzeugen wie Postman oder cURL.
  • Entfernen Sie die API auf Windows, Linux oder macOS Umgebungen.
  • Konfigurieren Sie Nginx oder IIS für die Produktionsanlage.

Diese Schritte bieten einen detaillierten Ansatz, um die Watermark API zu erstellen und zu exponieren**.

Code Example: REST API für Wassermarken hinzufügen

Im Folgenden ist ein runnerbares Code-Snippet für die Exposition einer REST API, die Text-Wasserzeichen 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("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);
            }
        }
    }
}

Verwendung auf großen Plattformen

Windows

  • Installieren Sie IIS und konfigurieren Sie die Website, um die veröffentlichte Anwendungsmappe anzuzeigen.
  • Veröffentlichen Sie die Anwendung:
dotnet publish -c Release -o publish

Linux

  • Installieren Sie die ASP.NET Core Runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
  • Veröffentlichen Sie die Anwendung:
dotnet publish -c Release -o publish
  • Konfigurieren Sie Nginx zum Proxy-Traffic auf den Kestrel-Server.

MacOS

dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

Gemeinsame Probleme und Fixes

  • Invalid Input Errors: Stellen Sie sicher, dass die hochgeladenen Datei ein gültiges Word-Dokument ist und das Wasserzeichentext nicht leer ist.
  • Access Denied Errors: Auf Linux/macOS geben Sie die entsprechenden Genehmigungen für die Anwendungsmappe.
chmod -R 755 /path/to/app
  • Performance-Probleme: Für große Dateien optimieren Sie die Speicherverwendung, indem Sie Dateien direkt aus dem Disk verarbeiten, anstatt Streams.

Dieser Leitfaden hat Ihnen gezeigt, wie Sie eine REST API erstellen können, um Wassermarken in Word-Dokumente mit Aspose.Words für .NET hinzuzufügen und sie auf allen großen Plattformen implementieren.

 Deutsch