Expose a REST API to Watermark Word Documents

Kā pievienot ūdenszīmes Word dokumentiem, izmantojot ASP.NET Core REST API

Šis apmācība vada jūs par kā izpaust REST API, lai pievienotu ūdens zīmes Word dokumentiem ASP.NET Core . Tas ietver soli pa solim instrukcijas, iestatīšanas detaļas un izvietošanas vadlīnijas galvenajām platformām.

Veidi, kā pievienot ūdenszīmes Word dokumentiem, izmantojot REST API

  • Iestatīt ASP.NET Core Web API projektu, lai pievienotu ūdens marķējumus.
  • Install ASPOSE.Words par .NET ar NuGet Package Manager palīdzību.
  • Izveidojiet kontrolieri ar gala punktu, lai pieņemtu Word failus un ūdens zīmes teksta vai attēla parametrus.
  • Rakstīt kodu, lai pievienotu teksta vai attēla ūdenszīmes Word dokumentiem.
  • Pārbaudiet API vietēji, izmantojot rīkus, piemēram, Postman vai cURL.
  • Ievietojiet API Windows, Linux vai macOS vidē.
  • Iestatīt Nginx vai IIS ražošanas izvietošanai.

Šie soļi nodrošina detalizētu pieeju, lai izveidotu un izklāstītu Watermark API .

Koda piemērs: REST API ūdens zīmes pievienošanai

Zemāk ir ietilpīgs kods, lai izstāstītu REST API, kas Word dokumentos pievieno teksta ūdenszīmes:

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);
            }
        }
    }
}

Uzstādīšana lielākajās platformās

Windows

  • IIS instalē un konfigurē vietni, lai norādītu uz publicēto pieteikumu failu.
  • Publicējiet pieteikumu:
dotnet publish -c Release -o publish

Linux

  • Instalēt ASP.NET Core runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
  • Publicējiet pieteikumu:
dotnet publish -c Release -o publish
  • Konfigurējiet Nginx proxy satiksmei uz Kestrel serveri.

Maikls

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

Kopīgas problēmas un fiksācijas

  • Invalid Input Errors : Pārliecinieties, ka lejupielādētais fails ir derīgs Word dokuments un ūdenszīmju teksts nav tukšs.
  • Pieejas noraidītas kļūdas : Linux/macOS, piešķirt atbilstošas atļaujas pieteikuma mapei.
chmod -R 755 /path/to/app
  • Darbības problēmas : Lieliem failiem optimizējiet atmiņas izmantošanu, apstrādājot failus tieši no disku, nevis plūsmas.

Šis ceļvedis ir parādījis, kā izveidot REST API, lai pievienotu ūdenszīmes Word dokumentos, izmantojot Aspose.Words for .NET un ievietojot to visās galvenajās platformās.

 Latviski