Expose a REST API to Watermark Word Documents
Kako dodati vodene oznake u Word dokumente putem ASP.NET Core REST API-a
Ovaj tutorial vodi vas na kako izložiti REST API za dodavanje vodovoda u Word dokumente u ASP.NET Core. To uključuje korak po korak upute, detalje postavljanja i smjernice za implementaciju za velike platforme.
Koraki za dodavanje vodene oznake u Word dokumente putem REST API-a
- Postavite ASP.NET Core Web API projekt za dodavanje vodovoda.
- Install Sljedeći članakAspose.Words za .NET via NuGet Package Manager.
- Stvorite kontrolor s krajnjim točkom kako biste prihvatili Word datoteke i parametre teksta ili slike.
- Napišite kod kako biste dodali tekst ili sliku vodene oznake u Word dokumente.
- Provjerite API lokalno pomoću alata kao što su Postman ili cURL.
- Uklonite API na Windows, Linux ili macOS okruženja.
- Konfigurirajte Nginx ili IIS za implementaciju proizvodnje.
Ovi koraki pružaju detaljan pristup stvaranju i izloženju API-ja Watermark.
Primjer koda: REST API za dodavanje vodnih znakova
Sljedeći je nastavak za prikazivanje REST API-ja koji dodaje tekstne vodene oznake za Word dokumente:
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);
}
}
}
}
Uvođenje na glavnim platformama
Windows
- Instalirajte IIS i konfigurirajte web-mjesto kako biste upućivali na objavljenu mapu aplikacija.
- Obavijest o zahtjevu:
dotnet publish -c Release -o publish
Linux
- Instalirajte vrijeme rada ASP.NET Core:
sudo apt-get install -y aspnetcore-runtime-7.0
- Obavijest o zahtjevu:
dotnet publish -c Release -o publish
- Konfigurirajte Nginx za proxy promet na Kestrel serveru.
MacOS
- Install the .NET runtime from the Službena stranica.
- Objavljuje i radi:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
Zajednička pitanja i rješenja
- Invalid Input Errors: Uvjerite se da je prenesena datoteka valjan Word dokument, a vodeni tekst nije prazan.
- Access Denied Errors: Na Linuxu/macOS-u, dodijelite odgovarajuće dozvole za aplikacijsku mapu.
chmod -R 755 /path/to/app
- Proizvodi učinkovitosti: Za velike datoteke, optimizirajte upotrebu memorije obrađivanjem datotek izravno s diska umjesto struja.
Ovaj vodič vam je pokazao kako stvoriti REST API za dodavanje vodovoda u Word dokumente koristeći Aspose.Words za .NET i raspoređivati ga na svim glavnim platformama.