Expose a REST API to Watermark Word Documents
Hvordan legge til vannmerker til Word-dokumenter via ASP.NET Core REST API
Denne veiledningen guider deg på hva du kan eksponere en REST API for å legge til vannmerker til Word-dokumenter i ASP.NET Core . Det inkluderer trinn-for-step instruksjoner, innstillinger og implementeringsanvisninger for store plattformer.
Trinn for å legge til vannmerker til Word-dokumenter via REST API
- Sett opp et ASP.NET Core Web API-prosjekt for å legge til vannmarker.
- Install Aspose.Words for .NET gjennom NuGet Package Manager.
- Skap en kontroll med en sluttpunkt for å akseptere Word-filer og watermark tekst eller bildeparameter.
- Skriv kode for å legge til tekst eller bilde vannmerker til Word-dokumenter.
- Test APIen lokalt ved hjelp av verktøy som Postman eller cURL.
- Oppsett APIen på Windows, Linux eller macOS-miljøer.
- Konfigurere Nginx eller IIS for produksjon.
Disse trinnene gir en detaljert tilnærming til å lage og eksponere watermark API .
Code Example: REST API for å legge til vannmarker
Nedenfor er en runnbar kodesnitett for å eksponere en REST API som legger til tekstvannmerker til Word-dokumenter:
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);
}
}
}
}
Utnyttelse på store plattformer
Windows
- Installere IIS og konfigurere nettstedet for å referere til den publiserte applikasjonsmappen.
- publisere søknaden:
dotnet publish -c Release -o publish
Linux
- Installere ASP.NET Core runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
- publisere søknaden:
dotnet publish -c Release -o publish
- Konfigurer Nginx til proxy-trafikk til Kestrel-serveren.
macos
- Installere .NET runtime fra Offisiell nettsted .
- Publisere og kjøre:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
Vanlige problemer og fixer
- Invalid Input Errors : Sørg for at filen som er lastet opp er et gyldig Word-dokument, og at vannmarkeringen ikke er tom.
- Access Denied Errors : På Linux/macOS, gi passende tillatelser til applikasjonsmappen.
chmod -R 755 /path/to/app
- Performance Problemer : For store filer, optimalisere hukommelsesbruk ved å behandle filene direkte fra disken i stedet for strømmer.
Denne guiden har vist deg hvordan du oppretter en REST API for å legge til vannmerker til Word-dokumenter ved hjelp av Aspose.Words for .NET og implementere den på alle store plattformer.