Expose a REST API to Watermark Word Documents
Kaip pridėti vandens ženklus į Word dokumentus per ASP.NET Core REST API
Ši pamoka jums padeda kaip atverti REST API, skirtą pridėti vandens ženklus į Word dokumentus ASP.NET Core. Joje pateikiamos išsamios instrukcijos, diegimo detalės ir diegimo gairės pagrindinėms platformoms.
Žingsniai, kaip pridėti vandens ženklus į Word dokumentus per REST API
- Sukurkite ASP.NET Core Web API projektą, skirtą vandens ženklų pridėjimui.
- Įdiegti Aspose.Words for .NET per NuGet Package Manager.
- Sukurkite valdiklį su galutiniu tašku, priimančiu Word failus ir vandens ženklo teksto arba vaizdo parametrus.
- Parašykite kodą, kuris pridėtų teksto arba vaizdo vandens ženklus į Word dokumentus.
- Išbandykite API lokaliai naudodami įrankius, pvz., Postman arba cURL.
- Patalpinkite API Windows, Linux arba macOS aplinkoje.
- Konfigūruokite Nginx arba IIS gamybos diegimui.
Šie žingsniai suteikia išsamų požiūrį, kaip sukurti ir atverti vandens ženklo API.
Kodo pavyzdys: REST API vandens ženklų pridėjimui
Žemiau pateiktas vykdomas kodo fragmentas, skirtas atskleisti REST API, kuris prideda teksto vandens ženklus į Word dokumentus:
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}");
}
}
}
}Diegimas pagrindinėse platformose
Windows
- Įdiekite IIS ir sukonfigūruokite svetainę, kad ji nurodytų į paskelbtą programos aplanką.
- Publikuokite programą:
Linux
- Įdiekite ASP.NET Core runtime:
- Publikuokite programą:
- Konfigūruokite Nginx, kad proxy srautą į Kestrel serverį.
macOS
- Įdiekite .NET runtime iš oficialios svetainės .
- Publikuokite ir paleiskite:
Dažnos problemos ir sprendimai
- Neteisingų įvesties klaidos: Įsitikinkite, kad įkeltas failas yra galiojantis Word dokumentas ir vandens ženklo tekstas nėra tuščias.
- Prieigos atmesto klaidos: Linux/macOS sistemoje suteikite tinkamus leidimus programos aplankui.
- Veikimo problemos: Dideliems failams optimizuokite atminties naudojimą apdorojant failus tiesiai iš disko, o ne srautų.
Šiame vadove parodyta, kaip sukurti REST API, skirtą pridėti vandens ženklus į Word dokumentus naudojant Aspose.Words for .NET ir įdiegti jį visose pagrindinėse platformose.