Expose a REST API to Watermark Word Documents
ASP.NET Core REST API aracılığıyla Word belgelerine su işaretleri nasıl eklenir
Bu kılavuz size **ASP.NET Core’daki Word belgelerine su işaretlerini eklemek için REST API’yi nasıl ortaya koyacağınızı **yönlendirir.
REST API aracılığıyla Word belgelerine su işaretleri ekleme adımları
- Su işaretleri eklemek için bir ASP.NET Core Web API projesi oluşturun.
- Yükleme Aspose.Words için .NET NuGet Paket Yöneticisi.
- Word dosyalarını ve su işareti metin veya görüntü parametrelerini kabul etmek için bir son noktası olan bir denetleyici oluşturun.
- Word belgelerine metin veya görüntü su işaretleri eklemek için kod yazın.
- API’yi yerel olarak Postman veya cURL gibi araçlar kullanarak test edin.
- API’yi Windows, Linux veya macOS ortamlarında yerleştirin.
- Yükleme için Nginx veya IIS ayarlayın.
Bu adımlar Watermark API oluşturmak ve ortaya çıkarmak için ayrıntılı bir yaklaşım sağlar.
Kod Örneği: REST API su işaretleri eklemek için
Aşağıda, Word belgelerine metin su işaretlerini ekleyen bir REST API’yi sergilemek için çalıştırılabilir bir kod çizgisi:
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);
}
}
}
}
Büyük Platformlarda Kullanım
Windows için
- IIS’i kurun ve yayınlanan uygulama klasörüne işaret etmek için siteyi ayarlayın.
- Başvuruyu yayınlayın :
dotnet publish -c Release -o publish
Linux için
- ASP.NET Core çalışma süresini ayarlayın:
sudo apt-get install -y aspnetcore-runtime-7.0
- Başvuruyu yayınlayın :
dotnet publish -c Release -o publish
- Nginx’i Kestrel sunucusuna proxy trafiğine ayarlayın.
macos için
- .NET çalıştırma süresini ayarlayın Resmi web sitesi .
- Yayın ve çalıştırma:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll
Toplam Sorunlar ve Çözümler
- Kötü giriş hataları: Yüklenen dosyanın geçerli bir Word belgesi olduğundan ve su işareti metnin boş olmadığından emin olun.
- Access Denied Errors: Linux/macOS’ta, uygulama klasörüne uygun izinler verin.
chmod -R 755 /path/to/app
- Performans Sorunları: Büyük dosyalar için, dosyaları akış yerine diskten doğrudan işleyerek hafıza kullanımını optimize edin.
Bu kılavuz size Aspose.Words for .NET kullanarak Word belgelerine su işaretlerini eklemek için REST API’yi nasıl oluşturacağınızı ve tüm büyük platformlarda nasıl dağıtılacağını göstermiştir.