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 zamanField.Type‘ı kontrol edin — hatalı bir dönüşüm birInvalidCastExceptionfırlatır. - Bir barkod alanının özelliklerini değiştirdikten sonra
Update()‘ı çağırın, böyleceResultbelge 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ınResult‘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ızIBarcodeGeneratoruygulamasına bağlıdır.
Yaygın Sorunlar
| Sorun | Neden | Düzelt |
|---|---|---|
InvalidCastException bir Field dönüştürürken | Yanlış FieldType varsayıldı | İlk olarak Field.Type‘ı eşleşen FieldType sabitiyle kontrol edin |
FieldEQ.AsOfficeMath() beklenmeyen sonuçlar döndürüyor | Alan geçerli bir denklem talimatı içermiyor | Dönüştürmeden önce GetFieldCode() çıktısını inceleyin |
| Barkod alanı oluşturulmuş bir görüntü içermiyor | Sağlanan IBarcodeGenerator uygulaması yok | GetBarcodeImage() uygulayan özel bir üretici sağlayın |
NewValue değişikliğinden sonra FieldInfo değeri güncellenmedi | Alan yenilenmedi | NewValue 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 / Metot | Açıklama |
|---|---|
FieldBarcode | BARCODE alanını uygular |
FieldDisplayBarcode | DISPLAYBARCODE alanını uygular |
FieldMergeBarcode | MERGEBARCODE mail-merge barkod alanını uygular |
BarcodeParameters | Oluşturucuya iletilen barkod ayarları için kapsayıcı |
IBarcodeGenerator | Özel barkod görüntü işleyicisi için arayüz |
FieldBidiOutline | BIDIOUTLINE alanını uygular |
FieldEQ | Uygular EQ denklem alanını; AsOfficeMath() OfficeMath‘ye dönüştürür |
FieldFootnoteRef | Uygular FOOTNOTEREF alanını |
FieldInfo | Uygular INFO belge-özelliği alanını |