Şekiller Çizme ve Filigranlar

Şekiller Çizme ve Filigranlar

Şekil Çizimi ve Filigranlar

Word belgeleri AutoShapes, resimleri, metin kutularını ve OLE nesnelerini, paragraf/koşu metin akışından ayrı bir çizim katmanında tutar. Aspose.Words FOSS for .NET bu katmanı Shape sınıfı (somut çizim nesneleri) ve onun soyut tabanı ShapeBase ile modeller; ikisi de Aspose.Words.Drawing ad alanının bir parçasıdır. Bu kılavuz şekil modelini, resim ve AutoShapes eklemeyi, konumlandırma ve kaydırma, doldurmalar ve efektler, gruplama ve filigranları kapsar.


Şekil ve ShapeBase Modeli

Shape — mühürlü ve doğrudan çalıştığınız tür — çizim katmanında bir AutoShape, metin kutusu, serbest biçim, OLE nesnesi, ActiveX kontrolü veya resim temsil eder. ShapeBase soyut sınıfından türetilir; bu sınıf her çizim nesnesi tarafından paylaşılan özellikleri sağlar: konum (Left, Top, Width, Height, Rotation), ShapeType enum değeri ve Fill, Stroke, ShadowFormat, Glow, Reflection gibi biçimlendirme alt nesneleri. GroupShape (aynı zamanda bir ShapeBase) tek bir birim olarak ele alınan şekil grubunu temsil eder. Bağımsız bir şekli doğrudan new Shape(doc, shapeType) ile oluşturun; burada shapeType ShapeType değeri olup Rectangle, Ellipse, Star veya TextBox gibi olabilir, ardından DocumentBuilder.InsertNode(node) ile ağaç yapısına ekleyin.


Resim ve AutoShapes ekleme DocumentBuilder ile

Resimler için özellikle, DocumentBuilder.InsertImage daha doğrudan bir yoldur: aşırı yüklemeler bir Image, dosya yolu, bir Stream veya ham bayt dizisini kabul eder; ayrıca açık width/height veya tam konumlandırma (horzPos, left, vertPos, top, width, height, wrapType) ayarlayan ek aşırı yüklemeler bulunur. Ortaya çıkan Shape, resim verisini ImageData özelliği aracılığıyla açığa çıkar — resmi değiştirmek için ImageData.SetImage(...), ayrıca temel ayarlamalar için CropTop/CropBottom/CropLeft/CropRight, Brightness, Contrast ve GrayScale. GroupShape örnekleri DocumentBuilder.InsertGroupShape(shapes) ile oluşturulur.


Konumlandırma ve Metin Kaydırma

Bir şeklin sayfaya göre konumu, RelativeHorizontalPosition ve RelativeVerticalPosition (her biri Page, Margin, Column veya benzeri çapa göre) ve Left/Top ofset özellikleriyle kontrol edilir. HorizontalAlignment ve VerticalAlignment basit göreli hizalamayı yönetir. Şeklin etrafındaki metnin nasıl akacağı WrapType ile ayarlanır ve taraf-özel kaydırma için WrapSide kullanılır. IsInline, şeklin metinle birlikte akıp akmadığını (satır içi) ya da bağımsız olarak yüzen bir öğe olup olmadığını rapor eder.


Dolgu, Çizgiler ve Efektler

Shape.Fill (Fill nesnesi), şeklin iç kısmının nasıl boyandığını kontrol eder: düz renk için Fill.Solid(color), degrade için Fill.OneColorGradient(...) / Fill.TwoColorGradient(...), desen için Fill.Patterned(patternType) ve resim dolgusu için Fill.SetImage(...); FillType hangisinin etkin olduğunu raporlar. Çerçeve, Stroke özelliği aracılığıyla kontrol edilir ve görsel efektler ayrı biçimlendirme nesneleri olarak sunulur — ShadowFormat, Glow (GlowFormat), Reflection (ReflectionFormat) ve SoftEdge (SoftEdgeFormat) — her biri efekti temizlemek için kendi Remove() yöntemine sahiptir.


Şekilleri ve Metin Kutularını Gruplama

Birden fazla şekil, kendi Fill, ShadowFormat, Glow ve Reflection özelliklerine sahip tek bir ShapeBase gibi davranan bir GroupShape içinde birleştirilebilir. Metin taşıyan bir şekil için, Shape.TextBox (TextBox nesnesi) metin-özel düzeni ortaya koyar: dolgu için InternalMarginLeft/Right/Top/Bottom, şeklin otomatik boyutlandırılması için FitShapeToText, metin yönü için LayoutFlow ve şekil içinde dikey metin hizalaması için VerticalAnchor.


Watermarks

Document.Watermark (Watermark nesnesi), tek bir şekle bağlı olmayan belge çapında bir filigranı yönetir. Metin filigranı için Watermark.SetText(text) ya da SetText(text, options), resim filigranı için SetImage(...) çağırın ve silmek için Watermark.Remove(). Watermark.Type, mevcut WatermarkType (Text, Image veya None) değerini rapor eder. TextWatermarkOptions, FontFamily, FontSize, Color ve Layout (WatermarkLayout.Horizontal ya da Diagonal) ayarlarını kontrol eder; ImageWatermarkOptions ise Scale ve IsWashout ayarlarını kontrol eder.


İpuçları ve En İyi Uygulamalar

  • Kod yazarken hem tek Shape hem de GroupShape örneklerinde çalışması gereken durumlarda ShapeBase kullanın; Shape‘ü doğrudan, ImageData veya Chart gibi resim- veya AutoShape-özel üyeler gerektiğinde kullanın.
  • Bir şekli yüzer hâle getirirken RelativeHorizontalPosition / RelativeVerticalPosition değerlerini WrapType ile birlikte ayarlayın — satır içi bir şekil (InsertImage için varsayılan), yüzer hâle getirmediğiniz sürece konumlandırma özelliklerini yok sayar.
  • Metnin arkasına bir Shape ekleyip konumlandırmak yerine, tek bir belge genelinde filigran için Document.Watermark‘ı tercih edin.
  • Bireysel özellikleri sıfıra ayarlamak yerine, nesnenin Remove() yöntemi (ShadowFormat.Remove(), ReflectionFormat.Remove()) ile bir efekti temizleyin.
  • ImageData, Chart veya grup-özel üyelerine erişmeden önce Shape.HasImage, Shape.HasChart veya Shape.IsGroup‘yi kontrol edin; çünkü bir Shape birkaç çizim nesnesi türünden herhangi birini temsil edebilir.

Sık Karşılaşılan Sorunlar

SorunNedenÇözüm
Bir şekle Left/Top ayarlamak görünür bir etki yapmazŞekil hâlâ satır içi (IsInline == true)WrapType‘ı yüzen bir değere ayarlayın ve konumlandırma özelliklerinin etkili olması için RelativeHorizontalPosition/RelativeVerticalPosition‘ı ayarlayın
Shape.ImageData bir istisna fırlatıyor ya da boşŞekil bir resim şekli değilOkumadan önce Shape.HasImage‘i kontrol edin ImageData
Filigran metni istenen yazı tipine uymuyorHiç TextWatermarkOptions sağlanmadıTextWatermarkOptions örneğini, FontFamily Watermark.SetText(text, options) olarak ayarlanmış şekilde geçin
Bir grubun alt şekilleri birlikte hareket etmiyorAlt öğeler grup üzerinden değil, doğrudan yeniden konumlandırıldıGroupShape‘i kendisini taşıyın veya yeniden boyutlandırın, böylece koordinat dönüşümü tüm alt öğelere uygulanır

FAQ

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 işleyebilecek kodda ShapeBase kullanın; tek bir çizim nesnesine özgü üyeler gerektiğinde, örneğin ImageData veya Chart, Shape kullanın.

Bir belgeye nasıl resim eklerim?

DocumentBuilder.InsertImage aşırı yüklemelerinden birini kullanın — bir Image, bir dosya yolu, bir Stream veya bir bayt dizisi geçirin, isteğe bağlı olarak width/height ya da tam konumlandırma argümanlarıyla.

Bir şekli metinle satır içi yerine yüzen hâle nasıl getiririm?

WrapType özelliğini satır içi olmayan bir değere ayarlayın ve RelativeHorizontalPosition/RelativeVerticalPosition ayarlayın, böylece şeklin Left/Top ofsetleri sayfa, kenar boşluğu veya sütuna göre yorumlanır.

Hem metin hem de resim filigranı ekleyebilir miyim?

Document.Watermark.Type, mevcut filigran türünü yansıtır; SetText veya SetImage ile yeni bir filigran ayarlamak, önceden var olanı değiştirir, bu yüzden bir belgede aynı anda en fazla bir etkin filigran bulunur.

Bir şekilden gölge ya da yansıma nasıl kaldırırım?

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


API Reference Özeti

Sınıf/YöntemAçıklama
ShapeTek bir çizim katmanı nesnesi — AutoShape, resim, metin kutusu veya OLE nesnesi.
ShapeBaseSoyut temel sınıf, Shape ve GroupShape tarafından paylaşılan.
GroupShapeBir grup şekil, tek bir çizim nesnesi olarak ele alınır.
DocumentBuilder.InsertImageİmleç konumunda bir resim şekli ekler, isteğe bağlı boyut ve konumlandırma ile.
ImageDataBir Shape üzerindeki resim verileri ve görüntü ayarlamaları (kırpma, parlaklık, kontrast).
Fillİç dolgu biçimlendirmesi — katı, degrade, desen veya resim.
RelativeHorizontalPosition / RelativeVerticalPositionYüzen bir şeklin konumu neye göre ölçülür.
WrapType / WrapSideMetin, bir şeklin etrafını nasıl sarar.
TextBoxMetin içeren bir şekil için metin yerleşim ayarları.
Document.WatermarkBelgenin metin veya görüntü filigranını yönetir.
TextWatermarkOptions / ImageWatermarkOptionsBir metin veya görüntü filigranının görünümünü yapılandırın.

Ayrıca Bakınız

 Türkçe