Word Belgelerine .NET içinde Çizim Şekilleri Nasıl Eklenir

Word Belgelerine .NET içinde Çizim Şekilleri Nasıl Eklenir

Bu rehber, .NET için Aspose.Words FOSS kullanarak bir Word belgesinin çizim katmanına içerik eklemeyi gösterir: bir AutoShape ekleme, resim ekleme, konumlandırma ve metni etrafına sarma, doldurma ve stil verme, birden fazla şekli gruplama ve bir filigran ayarlama. .NET için Aspose.Words FOSS, NuGet aracılığıyla ya da kaynak koddan derlenerek temin edilebilir.

Adım Adım Kılavuz

Adım 1: Kütüphaneyi Edinin

Depoyu klonlayın ve derleyin Aspose.Words.sln Release yapılandırmasında, ardından bir proje referansı ekleyin Aspose.Words.csproj kendi .NET projenizden, aşağıda açıklandığı gibi Kurulum kılavuzu. Ekle using Aspose.Words; and using Aspose.Words.Drawing; şekillerle çalışan herhangi bir dosyanın en üstüne.


Adım 2: Bir AutoShape Ekleyin

Bir şekli doğrudan new Shape(doc, shapeType) ile oluşturun, burada shapeType, Rectangle, Ellipse, Star veya TextBox gibi bir ShapeType değeridir, ardından DocumentBuilder.InsertNode(node) ile ağaca ekleyin. Shape, oluşturup yapılandırdığınız somut, mühürlenmiş sınıftır; ShapeBase adlı soyut sınıftan türetilir ve konumu (Left, Top, Width, Height, Rotation) ve GroupShape ile paylaşılan biçimlendirme alt nesnelerini (Fill, Stroke, ShadowFormat, Glow, Reflection) tanımlar.


Adım 3: Resim Ekle

DocumentBuilder.InsertImage, resimler için doğrudan yoldur: aşırı yüklemeler bir Image, bir dosya yolu, bir Stream veya ham bayt dizisi kabul eder; ayrıca açık width/height veya tam konumlandırma argümanları (horzPos, left, vertPos, top, width, height, wrapType) alan ek aşırı yüklemeler bulunur. Ortaya çıkan Shape‘nin ImageData özelliği resim verilerini tutar — resmi değiştirmek için ImageData.SetImage(...) çağırın ve temel ayarlamalar için CropTop/CropBottom/CropLeft/CropRight, Brightness, Contrast ve GrayScale kullanın.


Adım 4: Şekli Konumlandır ve Metni Kaydır

Satır içi bir şekil (InsertImage nin varsayılan sonucu) çevredeki metinle birlikte akar ve konumlandırma özelliklerini yüzen hâle gelene kadar yok sayar — şeklin hangi kipte olduğunu doğrulamak için IsInline‘e bakın. Bir şekli yüzen hâle getirmek için WrapType‘yi satır içi olmayan bir değer olarak ayarlayın ve RelativeHorizontalPosition/RelativeVerticalPosition‘i (her biri Page, Margin, Column veya benzer bir ankere göre) Left/Top ofsetleriyle birlikte ayarlayın. WrapSide yan-specifik kaydırmayı kontrol eder, HorizontalAlignment/VerticalAlignment ise açık ofsetler yerine basit göreli hizalamayı yönetir.


Adım 5: Şekli Doldur ve Stille

Shape.Fill (bir Fill nesnesi) şeklin içini boyar: düz renk için Fill.Solid(color), degrade için Fill.OneColorGradient(...)/Fill.TwoColorGradient(...), desen için Fill.Patterned(patternType) ve resim doldurması için Fill.SetImage(...) — FillType şu anda hangisinin etkin olduğunu rapor eder. Çerçeve Stroke özelliğinden gelir. Efektler için ShadowFormat, Glow (GlowFormat), Reflection (ReflectionFormat) ve SoftEdge (SoftEdgeFormat) her biri kendi ayarlarını ve efekti kaldırıp hiçbiri haline döndüren bir Remove() metodunu sunar.


Adım 6: Birden Çok Şekli Grupla

DocumentBuilder.InsertGroupShape(shapes) ile birkaç şekli tek bir birim halinde birleştirin; bu, bir GroupShape döndürür. GroupShape kendisi bir ShapeBase olduğundan, grup bütününe uygulanan kendi Fill, ShadowFormat, Glow ve Reflection özelliklerine sahiptir; grup koordinat dönüşümünün tutarlı kalması için GroupShape‘i, bireysel çocuklarını değil, taşıyın veya yeniden boyutlandırın. Metin taşıyan bir şekil için Shape.TextBox (bir TextBox nesnesi) dolgu (InternalMarginLeft/Right/Top/Bottom), otomatik boyutlandırma (FitShapeToText), metin yönü (LayoutFlow) ve dikey hizalama (VerticalAnchor) kontrol eder.


Adım 7: Filigran Ekle

Document.Watermark tek bir belge genelinde, manuel olarak eklediğiniz herhangi bir şekilden bağımsız bir filigranı yönetir. Metin filigranı için Watermark.SetText(text) veya SetText(text, options)‘yi, resim filigranı için SetImage(...)‘ü çağırın; Watermark.Remove() onu temizler ve Watermark.Type mevcut WatermarkType‘ı (Text, Image veya None) rapor eder. TextWatermarkOptions, FontFamily, FontSize, Color ve Layout‘ü (WatermarkLayout.Horizontal veya Diagonal) ayarlar; ImageWatermarkOptions ise Scale ve IsWashout‘u ayarlar.

Yaygın Sorunlar ve Çözümler

Setting Left/Top bir şekil üzerinde görünür bir etkisi yoktur. Şekil hâlâ satır içiIsInline == true). Ayarla WrapType bir kayan değer olarak ve ayarla RelativeHorizontalPosition/RelativeVerticalPosition böylece offset özellikleri etkili olur.

Shape.ImageData bir şey fırlatır veya hiçbir şey döndürmez. Şekil bir resim şekli değil. Kontrol edin Shape.HasImage okumadan önce ImageData.

Bir grubun alt şekilleri birlikte hareket etmez. Çocuklar grup üzerinden değil, ayrı ayrı yeniden konumlandırıldı. Taşı veya yeniden boyutlandır GroupShape kendisi, bu yüzden koordinat dönüşümü her çocuğa uygulanır.

Filigran metni istenen fontu kullanmıyor. Hayır TextWatermarkOptions geçirildi. Çağır Watermark.SetText(text, options) ile bir TextWatermarkOptions örnek ki FontFamily ayarlanmış.

Sıkça Sorulan Sorular

Shape ile ShapeBase arasındaki fark nedir?

ShapeBase, Shape ve GroupShape tarafından paylaşılan soyut temel sınıftır. Her iki türü de aynı şekilde ele alması gerektiğinde ShapeBase üzerine kod yazın; tek bir çizim nesnesine özgü üyeler için, örneğin ImageData, doğrudan Shape kullanın.

Belirli bir boyutta resmi nasıl eklerim?

Açık width ve height argümanlarını kabul eden bir DocumentBuilder.InsertImage aşırı yüklemesini, görüntü kaynağı (Image, dosya yolu, Stream veya bayt dizisi) ile birlikte kullanın.

Bir şekli metin içinde satır içi durmak yerine yüzen (float) hâle nasıl getiririm?

Onun WrapType değerini satır dışı bir değere ayarlayın ve RelativeHorizontalPosition / RelativeVerticalPosition değerlerini, Left/Top kaydırmalarının sayfa, kenar boşluğu veya sütun bazında yorumlanacak şekilde ayarlayın.

Bir belge aynı anda hem metin hem de resim filigranı içerebilir mi?

No. Document.Watermark.Type mevcut filigranın türünü rapor eder; SetText ya da SetImage tekrar çağrıldığında daha önce ayarlanmış olan filigranı değiştirir.

Bir şekilden gölgeyi veya yansımayı nasıl kaldırırım?

İlgili biçimlendirme nesnesi üzerinde Remove() çağırın — Shape.ShadowFormat.Remove() veya Shape.Reflection.Remove().

Ayrıca Bakınız

 Türkçe