Expose a REST API to Watermark Word Documents
Cum să adăugați filigrane la documente Word prin API REST ASP.NET Core
Acest tutorial vă ghidează în cum să expui un API REST pentru adăugarea de filigrane în documente Word în ASP.NET Core. Include instrucțiuni pas cu pas, detalii de configurare și ghiduri de implementare pentru platformele majore.
Pași pentru adăugarea de filigrane la documente Word prin API REST
- Configurați un proiect ASP.NET Core Web API pentru adăugarea de filigrane.
- Instalează Aspose.Words for .NET prin NuGet Package Manager.
- Creează un controller cu un endpoint care să accepte fișiere Word și parametri pentru text sau imagine de filigran.
- Scrie cod pentru a adăuga filigrane de text sau imagine în documentele Word.
- Testează API-ul local utilizând instrumente precum Postman sau cURL.
- Deplasează API-ul în medii Windows, Linux sau macOS.
- Configurează Nginx sau IIS pentru implementarea în producție.
Acești pași oferă o abordare detaliată pentru a crea și expune API de filigran.
Exemplu de cod: API REST pentru adăugarea filigranelor
Mai jos este un fragment de cod executabil pentru expunerea unui API REST care adaugă filigrane de text în documentele Word:
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}");
}
}
}
}Implementare pe platforme majore
Windows
- Instalați IIS și configurați site-ul să indice către folderul aplicației publicate.
- Publicați aplicația:
Linux
- Instalați runtime-ul ASP.NET Core:
- Publicați aplicația:
- Configurați Nginx pentru a proxifica traficul către serverul Kestrel.
macOS
- Instalați runtime-ul .NET de pe site-ul oficial .
- Publicați și rulați:
Probleme comune și remedieri
- Erori de intrare invalidă: Asigurați-vă că fișierul încărcat este un document Word valid și că textul watermark-ului nu este gol.
- Erori de acces refuzat: Pe Linux/macOS, acordă permisiunile corecte folderului aplicației.
- Probleme de performanță: Pentru fișiere mari, optimizează utilizarea memoriei procesând fișierele direct de pe disc în loc de fluxuri.
Acest ghid v-a arătat cum să creați un REST API pentru adăugarea de filigrane în documente Word utilizând Aspose.Words for .NET și să îl implementați pe toate platformele majore.