Expose a REST API to Watermark Word Documents
Sådan tilføjes vandmærker til Word-dokumenter via ASP.NET Core REST API
Denne vejledning guider dig i hvordan man eksponerer en REST API til at tilføje vandmærker til Word-dokumenter i ASP.NET Core. Den indeholder trin-for-trin instruktioner, opsætningsdetaljer og implementeringsretningslinjer for de vigtigste platforme.
Trin til at tilføje vandmærker til Word-dokumenter via REST API
- Opsæt et ASP.NET Core Web API-projekt til at tilføje vandmærker.
- Installer Aspose.Words for .NET via NuGet Package Manager.
- Opret en controller med et endpoint, der kan modtage Word-filer samt vandmærketekst- eller billedparametre.
- Skriv kode for at tilføje tekst- eller billedvandmærker til Word-dokumenter.
- Test API’et lokalt ved hjælp af værktøjer som Postman eller cURL.
- Implementer API’et på Windows-, Linux- eller macOS-miljøer.
- Konfigurer Nginx eller IIS til produktionsudrulning.
Disse trin giver en detaljeret tilgang til at oprette og eksponere vandmærke-API.
Kodeeksempel: REST API til tilføjelse af vandmærker
Nedenfor er et kørbart kodeeksempel til at eksponere et REST API, der tilføjer tekstvandmærker til Word-dokumenter:
using System.IO;
using System.Threading.Tasks;
using Aspose.Words;
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);
TextWatermarkOptions options = new TextWatermarkOptions
{
FontFamily = "Arial",
FontSize = 40,
Color = System.Drawing.Color.LightGray,
Layout = WatermarkLayout.Diagonal,
IsSemitrasparent = true
};
doc.Watermark.SetText(watermarkText, options);
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}");
}
}
}
}Udrulning på større platforme
Windows
- Installer IIS og konfigurer sitet til at pege på den publicerede applikationsmappe.
- Publicer applikationen:
Linux
- Installer ASP.NET Core runtime:
- Publicer applikationen:
- Konfigurer Nginx til at proxy trafik til Kestrel-serveren.
macOS
- Installer .NET runtime fra den officielle side .
- Udgiv og kør:
Almindelige problemer og rettelser
- Ugyldige inputfejl: Sørg for, at den uploadede fil er et gyldigt Word-dokument, og at vandmærketeksten ikke er tom.
- Adgang nægtet-fejl: På Linux/macOS skal du give de korrekte tilladelser til applikationsmappen.
- Ydelsesproblemer: For store filer, optimer hukommelsesforbruget ved at behandle filer direkte fra disken i stedet for strømme.
Denne vejledning har vist dig, hvordan du opretter en REST API til at tilføje vandmærker til Word-dokumenter ved hjælp af Aspose.Words for .NET og implementer den på alle større platforme.