Geçiş Alanları

Geçiş Alanları

Bu kılavuz, Aspose.Words FOSS for .NET içinde geçiş alanı türleri — eski barkod ve uyumluluk alanları — ile nasıl çalışılacağını gösterir.

Aspose.Words FOSS for .NET, belirli eski Word alan türlerini, adanmış bir sınıf kümesi içinde temsil eder Aspose.Words.Fields ad alanı, gayri resmi olarak transitional alanlar. Bunlar, daha sonraki Open XML alan eşdeğerlerinden daha önce var olan alanlardır, ancak içinde geçerli kalırlar .docx eski kaynaklardan açılan belgelerde. Her geçiş alan türünün, kendisinden türetilen güçlü tipli bir sınıfı vardır Field, genel Field tarafından sunulan nesne Document.Range.Fields.


Barkod Alanları

Belge içinde barkod verisi üreten veya gösteren üç alan sınıfı vardır: FieldBarcode (BARCODE alanı — kendi PostalAddress, IsBookmark, FacingIdentificationMark ve IsUSPostalAddress özelliklerine sahip eski bir posta barkodu), FieldDisplayBarcode (DISPLAYBARCODE alanı) ve FieldMergeBarcode (MERGEBARCODE alanı, ayrıca posta birleştirme sırasında kullanılmak üzere IMergeFieldSurrogate uygular). FieldDisplayBarcode ve FieldMergeBarcode, aynı genel amaçlı barkod yapılandırma özelliklerini paylaşır — BarcodeType, BarcodeValue, SymbolHeight, SymbolRotation, ScalingFactor, ForegroundColor, BackgroundColor, PosCodeStyle, CaseCodeStyle, ErrorCorrectionLevel, DisplayText, AddStartStopChar ve FixCheckDigit — bu özellikler FieldBarcode içinde yoktur.

BarcodeParameters sınıfı, iki özellik kümesinin (posta adresi özellikleri ve genel barkod yapılandırma özellikleri) birleşimini ortaya çıkaran bir geçiş konteyneridir, barkod işleyicisine ayarları iletmek için kullanılır ve IBarcodeGenerator ise özel bir işleyicinin uyguladığı, GetBarcodeImage(parameters) ve eski GetOldBarcodeImage(parameters) öğelerini ortaya çıkaran arayüzdür. Document.Range.Fields üzerinde yineleme yapın ve bu alanları bulmak için Field.Type‘i FieldType.FieldBarcode, FieldType.FieldDisplayBarcode veya FieldType.FieldMergeBarcode ile kontrol edin, ardından belirli alan sınıfına dönüştürün — BarcodeValue ve BarcodeType, yalnızca FieldDisplayBarcode veya FieldMergeBarcode‘e dönüştürüldükten sonra kullanılabilir, FieldBarcode değil.


Eski Uyumluluk Alanları

Dört ek alan sınıfı, yeni oluşturulan belgelerde daha az yaygın olan ancak hâlâ eski .docx dosyalarında görülen eski Word alan kodlarını kapsar: FieldBidiOutline (BIDIOUTLINE alanı, sağdan sola taslak numaralandırması için), FieldEQ (EQ denklem alanı, ayrıca içeriğini bir OfficeMath nesnesine dönüştürmek için AsOfficeMath()‘i ortaya çıkarır), FieldFootnoteRef (FOOTNOTEREF alanı, bir dipnot veya sonnot işaretine çapraz referans verir), ve FieldInfo (INFO alanı, InfoType ve NewValue özellikleri aracılığıyla bir belge özet-bilgi özelliğini okur veya yazar).

Bu alan sınıflarının her biri aynı Field arayüzünü devralır: GetFieldCode() alanın alttan gelen kod metnini döndürür, Update() alanın sonucunu yeniden değerlendirir, Unlink() alanı son hesaplanmış sonuçla değiştirir ve Remove() alanı belgeden siler. IFieldCodeTokenInfoProvider, FieldBarcode, FieldDisplayBarcode, FieldMergeBarcode ve FieldInfo tarafından uygulanır, çünkü onların alan kodları sade bir talimat dizesinin ötesinde yapılandırılmış anahtarlar taşır.


İpuçları ve En İyi Uygulamalar

  • Genel bir Field‘i geçiş alan sınıflarından birine dönüştürmeden önce her zaman Field.Type‘ı kontrol edin — hatalı bir dönüşüm bir InvalidCastException fırlatır.
  • Bir barkod alanının özelliklerini değiştirdikten sonra Update()‘ı çağırın, böylece Result belge kaydedilmeden önce yeni yapılandırmayı yansıtır.
  • FieldEQ.AsOfficeMath(), EQ alanı gerçekten bir denklem kodladığında ancak başarılı olur; çağırmadan önce alanın Result‘inin bir formül gibi göründüğünü doğrulayın.
  • Bir alanın mevcut değerini statik metin olarak dondurmak ve daha sonra yeniden hesaplama yeteneğini terk etmek istediğinizde Unlink()‘ı kullanın.
  • Barkod alan sınıfları sadece veri taşır — bu FOSS sürümü barkod renderleme motorunu içermez, bu yüzden GetBarcodeImage() çıktısı sağladığınız IBarcodeGenerator uygulamasına bağlıdır.

Yaygın Sorunlar

SorunNedenDüzelt
InvalidCastException bir Field dönüştürürkenYanlış FieldType varsayıldıİlk olarak Field.Type‘ı eşleşen FieldType sabitiyle kontrol edin
FieldEQ.AsOfficeMath() beklenmeyen sonuçlar döndürüyorAlan geçerli bir denklem talimatı içermiyorDönüştürmeden önce GetFieldCode() çıktısını inceleyin
Barkod alanı oluşturulmuş bir görüntü içermiyorSağlanan IBarcodeGenerator uygulaması yokGetBarcodeImage() uygulayan özel bir üretici sağlayın
NewValue değişikliğinden sonra FieldInfo değeri güncellenmediAlan yenilenmediNewValue değiştirdikten sonra alanda Update() çağırın

FAQ

Bu alan türleri için “transitional” ne anlama geliyor?

Bu resmi Word terminolojisi değildir — bu, bu sürümün Aspose.Words.Fields ad alanındaki alan sınıflarını, eski alan kodlarını (barkod ve Open-XML öncesi uyumluluk alanları) kendi güçlü tipli sınıfları aracılığıyla uygulayan, yalnızca genel Field nesnesiyle işlenmek yerine gruplar.

Bu sürüm barkod görüntülerini oluşturuyor mu?

Hayır. FieldBarcode, FieldDisplayBarcode ve FieldMergeBarcode barkod verilerini tutar ve IBarcodeGenerator arabirimini ortaya çıkarır, ancak bu sürümde yerleşik bir barkod oluşturma motoru bulunmaz — kendi IBarcodeGenerator uygulamanızı sağlamalısınız.

Bir EQ alanını OfficeMath denkleme dönüştürebilir miyim?

Evet, FieldEQ.AsOfficeMath() aracılığıyla, alan kodu gerçekten bir denklem kodluyorsa.

Bir belgede tüm geçiş alanlarını nasıl bulurum?

Document.Range.Fields öğelerini numaralandırın ve her Field.Type öğesini ilgili FieldType sabitleri (FieldBarcode, FieldDisplayBarcode, FieldMergeBarcode, FieldBidiOutline, FieldEQ, FieldFootnoteRef, FieldInfo) ile karşılaştırın.


API Reference Özeti

Sınıf / MetotAçıklama
FieldBarcodeBARCODE alanını uygular
FieldDisplayBarcodeDISPLAYBARCODE alanını uygular
FieldMergeBarcodeMERGEBARCODE mail-merge barkod alanını uygular
BarcodeParametersOluşturucuya iletilen barkod ayarları için kapsayıcı
IBarcodeGeneratorÖzel barkod görüntü işleyicisi için arayüz
FieldBidiOutlineBIDIOUTLINE alanını uygular
FieldEQUygular EQ denklem alanını; AsOfficeMath() OfficeMath‘ye dönüştürür
FieldFootnoteRefUygular FOOTNOTEREF alanını
FieldInfoUygular INFO belge-özelliği alanını

Ayrıca Bakınız

 Türkçe