Expose a REST API to Watermark Word Documents
Как добавить водные знаки в Word-документы через ASP.NET Core REST API
Этот урок направляет вас на как выявить 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
Линукс
- Настройка 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 и разместить его на всех основных платформах.