Expose a REST API to Watermark Word Documents

Jak přidat vodní značky do Word dokumentů pomocí ASP.NET Core REST API

Tento tutoriál vás vede na jak vystavit REST API pro přidávání vodních značek do Word dokumentů v ASP.NET Core. To zahrnuje krok za krokem pokyny, podrobnosti o nastavení a pokyny pro implementaci pro hlavní platformy.

Kroků k přidání vodních znaků do Wordových dokumentů prostřednictvím REST API

  • Vytvořte ASP.NET Core Web API projekt pro přidávání vodních znak.
  • Instalace Aspose.Words pro .NET Využijte NuGet Package Manager.
  • Vytvořte ovládací prvek s koncovým bodem pro přijetí souborů Word a parametrů textu nebo obrazu.
  • Napište kód, abyste do dokumentů Word přidali text nebo obrázek.
  • Testujte API lokálně pomocí nástrojů, jako je Postman nebo cURL.
  • Rozložte API na Windows, Linux nebo macOS prostřed.
  • Nastavte Nginx nebo IIS pro implementaci výroby.

Tyto kroky poskytují podrobný přístup k vytvoření a vystavení API watermark.

Příklad kódu: REST API pro přidávání vodních znaků

Níže je spuštěný kódový snímek pro vystavení REST API, který přidává textové vodní známky do dokumentů 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);
            }
        }
    }
}

Využití na hlavních platformách

Windows

  • Instalujte IIS a nastavte web, abyste poukázali na publikovanou složku aplikac.
  • Zveřejnění žádosti:
dotnet publish -c Release -o publish

Linux

  • Instalace ASP.NET Core Runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
  • Zveřejnění žádosti:
dotnet publish -c Release -o publish
  • Konfigurujte Nginx proxy provoz na serveru Kestrel.

MacOS

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

Společné problémy a fixy

  • Invalid Input Errors: Ujistěte se, že nahraný soubor je platným Wordovým dokumentem a text vodní známky není prázdn.
  • Přístup odmítnutá chyba: Na Linuxu/macOSu, udělejte odpovídající povolení do složky aplikace.
chmod -R 755 /path/to/app
  • Výkonové problémy: Pro velké soubory optimalizujte používání paměti zpracováním souborů přímo z disku namísto stream.

Tento průvodce vám ukázal, jak vytvořit REST API pro přidávání vodních značek do Word dokumentů pomocí Aspose.Words pro .NET a rozšiřovat ji na všech hlavních platformách.

 Čeština