Expose a REST API to Watermark Word Documents
Hogyan kell hozzáadni a vízjelzőket a Word dokumentumokhoz az ASP.NET Core REST API segítségével
Ez a kézikönyv megmutatja, hogyan kell feltárni egy REST API-t a Word dokumentumok vízjelzőinek hozzáadására az ASP.NET Core**. Ez magában foglalja a lépésről lépésre vonatkozó utasításokat, a beállítási részleteket és a főbb platformok üzemeltetési útmutatóját.
A Word dokumentumok vízjelzőinek hozzáadásának lépései a REST API-n keresztül
- Hozzon létre egy ASP.NET Core Web API projektet a vízjelzők hozzáadásához.
- Install Az ASPOSE.Words for .NET via NuGet Package Manager.
- Hozzon létre egy vezérlőt egy végpontgal, hogy elfogadja a Word fájlokat és a vízjelző szöveg vagy kép paramétereket.
- Írja be a kódot a szöveg vagy a kép vízjelzők hozzáadásához a Word dokumentumokhoz.
- Tesztelje az API-t helyileg olyan eszközökkel, mint a Postman vagy a cURL.
- Az API telepítése Windows, Linux vagy macOS környezetben.
- Állítsa be a Nginx-t vagy az IIS-t a termelés elhelyezéséhez.
Ezek a lépések részletes megközelítést biztosítanak a watermark API létrehozásához és kiállításához.
Kód példa: REST API a vízjelzők hozzáadásához
Az alábbiakban egy futtatható kódszalag a REST API kiállításához, amely szöveges vízjelzőket ad a Word dokumentumokhoz:
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);
}
}
}
}
A nagyobb platformokon való elhelyezkedés
Windows
- Telepítse az IIS-t, és állítsa be a webhelyet a közzétett alkalmazási mappához.
- Közzéteszi a kérelmet:
dotnet publish -c Release -o publish
Linux
- Az ASP.NET Core futamidejének telepítése:
sudo apt-get install -y aspnetcore-runtime-7.0
- Közzéteszi a kérelmet:
dotnet publish -c Release -o publish
- Állítsa be a Nginx-t a Kestrel szerver proxy forgalomba.
macos
- Install the .NET runtime from the Hivatalos honlap.
- Közzététel és futás:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
Közös problémák és megoldások
- Invalid Input Errors: Győződjön meg róla, hogy a feltöltött fájl érvényes Word-dokumentum, és a vízjelző szöveg nem üres.
- Hozzáférés elutasított hibák: A Linux/macOS rendszerben adja meg a megfelelő engedélyeket az alkalmazás mappájára.
chmod -R 755 /path/to/app
- Teljesítményproblémák: A nagy fájlok esetében optimalizálja a memória használatát feldolgozásával közvetlenül a lemezről, ahelyett, hogy áramlása.
Ez az útmutató megmutatja, hogyan kell létrehozni egy REST API-t a Word dokumentumok vízjelzőinek hozzáadására Aspose.Words for .NET használatával, és telepítse az összes fő platformon.