Watermark Word Belgelerini İşlemek İçin Bir REST API'si Açın

ASP.NET Core REST API Üzerinden Word Belgelerine Filigran Nasıl Eklenir

Bu eğitim, ASP.NET Core’da Word belgelerine filigran eklemek için bir REST API’sinin nasıl oluşturulacağını anlatmaktadır. Adım adım talimatlar, kurulum detayları ve büyük platformlar için dağıtım kılavuzlarını içermektedir.

REST API Üzerinden Word Belgelerine Filigran Ekleme Adımları

  1. Filigran eklemek için bir ASP.NET Core Web API projesi oluşturun.
  2. NuGet Paket Yöneticisi aracılığıyla Aspose.Words for .NET paketini yükleyin.
  3. Word dosyalarını ve filigran metni veya resim parametrelerini kabul eden bir uç nokta ile bir denetleyici oluşturun.
  4. Word belgelerine metin veya resim filigranları eklemek için kod yazın.
  5. Postman veya cURL gibi araçları kullanarak API’yi yerel olarak test edin.
  6. API’yi Windows, Linux veya macOS ortamlarında dağıtın.
  7. Üretim dağıtımı için Nginx veya IIS’i yapılandırın.

Bu adımlar, filigran API’sini oluşturma ve sergileme için ayrıntılı bir yaklaşım sunmaktadır.

Kod Örneği: Filigran Eklemek için REST API

Aşağıda, Word belgelerine metin filigranları ekleyen bir REST API’yi sergileyen çalıştırılabilir bir kod parçası bulunmaktadır:

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("Lütfen geçerli bir Word belgesi yükleyin ve bir filigran metni sağlayın.");

            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, $"Sunucu hatası: {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);
            }
        }
    }
}

Büyük Platformlarda Dağıtım

Windows

  1. IIS’i yükleyin ve siteyi yayımlanan uygulama klasörüne yönlendirecek şekilde yapılandırın.
  2. Uygulamayı yayımlayın:
    dotnet publish -c Release -o publish

Linux

  1. ASP.NET Core çalışma zamanını yükleyin:
    sudo apt-get install -y aspnetcore-runtime-7.0
  2. Uygulamayı yayımlayın:
    dotnet publish -c Release -o publish
  3. Nginx’i Kestrel sunucusuna trafik yönlendirmek için yapılandırın.

macOS

  1. .NET çalışma zamanını resmi siteden yükleyin.
  2. Yayımlayın ve çalıştırın:
    dotnet publish -c Release -o publish
    cd publish
    dotnet WatermarkAPI.dll

Yaygın Sorunlar ve Çözümler

  1. Geçersiz Girdi Hataları: Yüklenen dosyanın geçerli bir Word belgesi olduğundan ve filigran metninin boş olmadığından emin olun.
  2. Erişim Reddedildi Hataları: Linux/macOS’ta, uygulama klasörüne uygun izinleri verin.
    chmod -R 755 /path/to/app
  3. Performans Sorunları: Büyük dosyalar için, dosyaları akışlardan ziyade doğrudan diskten işleyerek bellek kullanımını optimize edin.

Bu kılavuz, Aspose.Words for .NET kullanarak Word belgelerine filigran eklemek için bir REST API’si oluşturmayı ve bunu tüm büyük platformlarda dağıtmayı göstermiştir.

 Türkçe