Expose a REST API to Watermark Word Documents

Como adicionar marcadores de água a documentos do Word através da API ASP.NET Core REST

Este tutorial guia você sobre como expor uma API REST para adicionar sinais de água aos documentos do Word no ASP.NET Core. Ele inclui instruções passo a passo, detalhes de configuração e diretrizes de implementação para plataformas principais.

Passos para adicionar marcadores de água aos documentos do Word através da API REST

  • Crie um projeto ASP.NET Core Web API para adicionar sinais de água.
  • Instalação Versões para .NET Com o NuGet Package Manager.
  • Crie um controlador com um ponto final para aceitar arquivos do Word e parâmetros de texto ou imagem.
  • Escreva código para adicionar texto ou imagem para os documentos do Word.
  • Teste a API localmente usando ferramentas como Postman ou cURL.
  • Desenvolva a API em ambientes Windows, Linux ou macOS.
  • Configure Nginx ou IIS para implantação de produção.

Estes passos fornecem uma abordagem detalhada para criar e expor a API marca de água.

Exemplo de código: REST API para adicionar sinais de água

Abaixo está um snippet de código executável para expor uma API REST que adiciona águas de texto aos documentos do 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);
            }
        }
    }
}

Desenvolvimento em grandes plataformas

Windows

  • Instale o IIS e configure o site para indicar a pasta de aplicativos publicada.
  • Publica a aplicação:
dotnet publish -c Release -o publish

O Linux

  • Instale o tempo de execução do ASP.NET Core:
sudo apt-get install -y aspnetcore-runtime-7.0
  • Publica a aplicação:
dotnet publish -c Release -o publish
  • Configure Nginx para o tráfego proxy para o servidor Kestrel.

macos

  • Instale o tempo de execução .NET do Site oficial .
  • Publicar e executar:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

Problemas comuns e fixos

  • Erros de entrada inválidos: certifique-se de que o arquivo carregado é um documento de Word válido e o texto da marca de água não é vazio.
  • Access Denied Errors: No Linux/macOS, conceda permissões apropriadas para a pasta de aplicativos.
chmod -R 755 /path/to/app
  • Problemas de desempenho: Para arquivos grandes, otimize o uso da memória processando arquivos diretamente do disco em vez de fluxos.

Este guia mostrou-lhe como criar uma API REST para adicionar sinais de água aos documentos do Word usando Aspose.Words para .NET e implantá-lo em todas as principais plataformas.

 Português