Expose a REST API to Watermark Word Documents
Як додати водяні знаки до Word-документів за допомогою API ASP.NET Core REST
Цей навчальний заклад направляє вас на як експонувати REST API для додавання водних знаків до Word-документів в ASP.NET Core. Він включає в себе інструкції крок за кроком, деталі налаштування та інструкції щодо запуску для великих платформ.
Додати водяні знаки до Word-документів за допомогою REST API
- Створення проекту ASP.NET Core Web API для додавання водних знаків.
- Інсталяція Aspose.Words для .NET Про це йдеться в повідомленні NuGet Package Manager.
- Створіть контролер з кінцевою точкою для прийняття файлів Word та параметрів тексту або зображення.
- Напишіть код, щоб додати текст або зображення водяних знаків до документів Word.
- Тестуйте API локально за допомогою таких інструментів, як Postman або cURL.
- Розподіл API на Windows, Linux або macOS середовищах.
- Налаштуйте Nginx або IIS для розробки виробництва.
Ці кроки дають детальний підхід до створення та виявлення API Watermark.
Приклад коду: REST API для додавання водних знаків
Нижче наведено прохідний код для виявлення REST API, який додає текстові водяні знаки до Word-документів:
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);
}
}
}
}
Використання на великих платформах
Windows
- Налаштуйте IIS і налаштуйте сайт, щоб вказувати на опубліковану папку додатків.
- Опублікуйте заявку:
dotnet publish -c Release -o publish
Linux
- Завантажити ASP.NET Core Runtime:
sudo apt-get install -y aspnetcore-runtime-7.0
- Опублікуйте заявку:
dotnet publish -c Release -o publish
- Налаштуйте Nginx до прокси трафіку на сервер Kestrel.
МАКОС
- Завантажити .NET Runtime з Офіційний сайт .
- Опубліковано та опубліковано:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
Загальні питання та рішення
- Недійсні вхідні помилки: Переконайтеся, що завантажений файл є дійсним документом Word, а текст водяного знака не є порожнім.
- Доступ відмовляється від помилок: На Linux/macOS, надайте відповідні дозволи для папки додатків.
chmod -R 755 /path/to/app
- Проблеми продуктивності: Для великих файлів, оптимізуйте використання пам’яті шляхом обробки файлів безпосередньо з диска, а не потоків.
Цей посібник показав вам, як створити REST API для додавання водних знаків до Word-документів за допомогою Aspose.Words для .NET і розмістити його на всіх основних платформах.