Expose a REST API to Watermark Word Documents
Miten lisätä vesimerkkejä Word-asiakirjoihin ASP.NET Core REST API:n kautta
Tämä opetusohjelma ohjaa sinua kuinka altistaa REST API lisäämään vesimerkkejä Word-asiakirjoihin ASP.NET Core. Se sisältää askel askeleelta ohjeita, asennus yksityiskohtia ja käyttöönottoohjeita suurille alustoille.
Vaiheet Lisää vedenmerkkejä Word-asiakirjoihin REST API:n kautta
- Aseta ASP.NET Core Web API -hanke lisäämään vesimerkkejä.
- Install Aspose.Words for .NET via NuGet Package Manager.
- Luo ohjain, jossa on loppupiste hyväksyä Word-tiedostoja ja vedenmerkki tekstin tai kuvan parametrit.
- Kirjoita koodi lisätäksesi tekstin tai kuvan vesimerkkejä Word-asiakirjoihin.
- Testaa API paikallisesti käyttämällä työkaluja, kuten Postman tai cURL.
- Laita API Windowsin, Linuxin tai macOS-ympäristöihin.
- Aseta Nginx tai IIS tuotannon käyttöön.
Nämä vaiheet tarjoavat yksityiskohtaisen lähestymistavan luomaan ja esittämään vesimerkki API.
Koodin esimerkki: REST API lisäämään vedenmerkkejä
Alla on kätevä koodi, joka altistaa REST-API: n, joka lisää tekstin vesimerkkejä Word-asiakirjoihin:
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);
}
}
}
}
Toimintaa suurilla alustoilla
Windowsin
- Asenna IIS ja määritä sivusto osoittaaksesi julkaistun sovelluslomakkeen.
- Julkaise hakemus:
dotnet publish -c Release -o publish
Linuxin
- Asenna ASP.NET Core runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
- Julkaise hakemus:
dotnet publish -c Release -o publish
- Aseta Nginx proxy-liikenteen Kestrelin palvelimeen.
macOS
- Install the .NET runtime from the Virallinen sivusto.
- Julkaise ja käynnistä:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
Yhteiset ongelmat ja korjaukset
- Epäoikeudenmukaiset tulosvirheet: Varmista, että lataama tiedosto on voimassa oleva Word-asiakirja ja vesimerkki ei ole tyhjä.
- Access Denied Errors: Linuxissa/macOS:ssa antakaa asianmukaiset luvat sovelluslaatikkoon.
chmod -R 755 /path/to/app
- suorituskykyongelmat: Suurille tiedostoille optimoi muistin käyttöä käsittelemällä tiedostot suoraan levystä virtauksen sijasta.
Tämä opas on osoittanut sinulle, miten luoda REST API lisäämään vesimerkkejä Word-asiakirjoihin käyttämällä Aspose.Words for .NET ja levittää se kaikilla suurilla alustoilla.