Alanlara Genel Bakış
Aspose.Words, Microsoft Word belgelerin sunucu tarafında işlenmesi için tasarlanmış bir sınıf kitaplığıdır ve alanları aşağıdaki şekillerde destekler:
- bir belgedeki tüm alanlar açma / kaydetme ve dönüştürme sırasında korunur
- çoğu alanın sonuçlarını güncellemek mümkündür
Bu makalede, alan yapısı, Aspose.Words ‘da desteklenen alanlar ve bu alanlarla çalışmanın ayrıntıları hakkında daha fazla bilgi edineceğiz.
Alan Yapısı
Bir alan şunlardan oluşur:
- Alan başlatma ve ayırıcı düğümler, alan kodunu oluşturan içeriği (normalde düz metin olarak) kapsamak için kullanılır.
- Alan ayırıcısı ve alan sonu, alan sonucunu kapsar. Bu, metin çalışmalarından paragraflara ve tablolara kadar çeşitli içerik türlerinden oluşabilir.
- Bazı alanlarda ayırıcı olmayabilir, bu da tüm içeriğin alan kodunu oluşturduğu anlamına gelir.
- Alan kodu, alanın davranışını tanımlar ve alan tanımlayıcısından ve genellikle alan adları ve anahtarlar gibi diğer parametrelerden oluşur.
- Alan sonucu, alanın en son değerlendirmesini içerir. Bu değer, sonuç alanında saklanır ve kullanıcıya görüntülenen değerdir. Bazı alanlarda herhangi bir alan sonucu olmayabilir, bu nedenle belgede hiçbir şey görüntülenmez. Aynı şekilde, bazı alanlar henüz güncellenmeyebilir, bu nedenle alan sonucu da olmayacaktır.
Alan kodunu oluşturan içerik, FieldStart ile FieldSeparator arasında Run düğüm olarak saklanır. Alan sonucu FieldSeparator ve FieldEnd düğümleri arasında saklanır ve çeşitli içerik türlerinden oluşabilir. Normalde alan sonucu yalnızca Run düğümlerinden oluşan metni içerir, ancak FieldEnd düğümünün tamamen farklı bir paragrafta bulunması ve böylece alan sonucunun aşağıdakilerden oluşması mümkündür blok düzeyinde düğümler Table ve Paragraph düğümleri gibi.
“DocumentExplorer” örneğini kullanarak bir alanın Aspose.Words içinde nasıl saklandığına dair bir görünüm aşağıda verilmiştir.
Aspose.Words Belge Nesne Modelindeki Alanlar (DOM)
Bir belge Aspose.Words’ya yüklendiğinde, belgenin alanları Aspose.Words’ya yüklenir. Aspose.Words Belge Nesne Modeli ayrı bileşenler (düğümler) kümesi olarak. Bu düğümler arasındaki içerikle birlikte FieldStart, FieldSeparator ve FieldEnd düğümlerden oluşan bir koleksiyon olarak tek bir alan yüklenir. Bir alanın alan sonucu yoksa, FieldSeparator düğümü olmayacaktır. Bu düğümlerin tümü her zaman satır içi olarak bulunur (Paragraph veya SmartTag alt öğeleri olarak).
Aspose.Words ‘te FieldXXX düğümlerin her biri FieldChar‘den türemiştir. Bu sınıf, FieldType özelliği aracılığıyla belirtilen düğüm tarafından temsil edilen alan türünü denetlemek için bir özellik sağlar. Örneğin FieldType.FieldMergeField belgedeki bir birleştirme alanını temsil eder.
Bir Word belgesinde FieldXXX düğüm koleksiyonu olarak Aspose.Words’ya içe aktarılmayan bazı özel alanlar vardır. Örneğin, LINK
alanı ve INCLUDEPICTURE
alanı Aspose.Words’ya Shape
nesnesi olarak alınır. Bu nesne, normalde bu alanlarda depolanan görüntü verileriyle çalışmak için özellikler sağlar. INCLUDEPICTURE
alanını FieldXXX düğüm olarak içe aktarmak için PreserveIncludePictureField seçeneğinin true olarak belirtilmesi gerekir.
Form alanları da kendi özel sınıfları olarak Aspose.Words içine alınır. FormField sınıfı, bir Word belgesindeki bir form alanını temsil eder ve bir form alanına özgü ek yöntemler sağlar.
Desteklenen Alanlar
Aşağıdaki alanların hesaplanması Aspose.Words geçerli sürümünde desteklenir:
- = (formül)
ADDRESSBLOCK
ASK
AUTHOR
AUTONUM
AUTONUMLGL
AUTONUMOUT
AUTOTEXT
BARCODE
COMMENTS
COMPARE
CREATEDATE
DATABASE
DATE
DISPLAYBARCODE
DOCPROPERTY
DOCVARIABLE
EDITTIME
EQ
FILENAME
FILESIZE
FILLIN
FORMCHECKBOX
FORMDROPDOWN
FORMTEXT
GLOSSARY
GOTOBUTTON
GREETINGLINE
HYPERLINK
IF
IMPORT
INCLUDE
INCLUDEPICTURE
INCLUDETEXT
INDEX
INFO
KEYWORDS
LASTSAVEDBY
LISTNUM
MACROBUTTON
MERGEBARCODE
MERGEFIELD
MERGEREC
MERGESEQ
NEXT
NEXTIF
NOTEREF
NUMCHARS
NUMPAGES
NUMWORDS
PAGE
PAGEREF
PRINTDATE
QUOTE
REF
REVNUM
SAVEDATE
SECTION
SECTIONPAGES
SEQ
SET
SHAPE
SKIPIF
STYLEREF
SUBJECT
SYMBOL
TEMPLATE
TIME
TITLE
TOA
TOC
USERADDRESS
USERINITIALS
USERNAME
Karmaşık Alan Ayrıştırma
Aspose.Words, Microsoft Word ‘ın alanları işleme biçimini izler ve sonuç olarak doğru şekilde işler:
- iç içe geçmiş alanlar:
IF { =OR({ COMPARE { =2.5 +PRODUCT(3,5 ,8.4) } > 4}, { =2/2 }) } = 1 "Credit not acceptable" "Credit acceptable"
- alan bağımsız değişkeni, iç içe geçmiş bir alanın sonucu olabilir
- alanlar, alan sonucunun yanı sıra bir alan kodu içinde de yuvalanabilir
- boşluklar / boşluk yok, tırnak işaretleri / tırnak işaretleri yok, alanlardaki kaçış karakterleri vb.:
MERGEFIELD \f"Text after""Field \n\ame with \" and \\\ and \\\*"\bTextBefor\e
- birden çok paragrafa yayılan alanlar
Formül Alanları
Aspose.Words formül motorunun çok ciddi bir uygulamasını sağlar ve aşağıdakileri destekler:
- aritmetik ve mantıksal operatörler:
=(54+4*(6-77)-(5))+(-6-5)/4/5
- işlevler:
=ABS(-01.4)+2.645/(5.6^3.5)+776457 \\\# "#,##0"
- yer imlerine referanslar:
=IF(C>4, 5,ABS(A)*.76) +3.85
- sayı biçimlendirme anahtarları:
=00000000 \\\# "$#,##0.00;($#,##0.00)"
İfadelerdeki aşağıdaki işlevler desteklenir: ABS
, AND
, AVERAGE
, COUNT
, DEFINED
, FALSE
, IF
, INT
, MAX
, MIN
, MOD
, NOT
, OR
, PRODUCT
, ROUND
, SIGN
, SUM
, TRUE.
IF
ve COMPARE
Alanları
Aspose.Words’in kolayca hesaplayabileceği IF
ifadelerden sadece bazıları size bu özelliğin ne kadar güçlü olduğu hakkında bir fikir vermelidir:
IF 3 > 5.7^4+MAX(4,3) True False
IF "abcd" > "abc" True False
IF "?ab*" = "1abdsg" True False
IF 4 = "2*2" True False
COMPARE 3+5/34 < 4.6/3/2
DATE
ve TIME
Alanları
Aspose.Words Microsoft Word ‘da bulunan tüm tarih ve saat biçimlendirme anahtarlarını destekler, bazı örnekler:
DATE @ "d-MMM-yy"
DATE @ "d/MM/yyyy h:mm am/pm
Mail Merge Alanlar
Aspose.Words, belgelerinizdeki mail merge alanların karmaşıklığına herhangi bir sınır getirmez ve iç içe IF
ve formül alanlarını destekler ve hatta bir formül kullanarak birleştirme alanının adını hesaplayabilir.
Aspose.Words’ın desteklediği mail merge alanlarından bazı örnekler:
- Mail merge alan anahtarları:
MERGEFIELD FirstName \\\\\\\\* FirstCap \b "Mr. "
- formülde iç içe geçmiş birleştirme alanları:
IF {
MERGEFIELDValue1 } >= {
MERGEFIELDValue2 } True False
- çalışma zamanında birleştirme alanının adını hesaplayın:
MERGEFIELD {
IF{
MERGEFIELDValue1 } >= {
MERGEFIELDValue2 } FirstName"LastName" }
- veri kaynağındaki bir sonraki kayda koşullu taşıma:
NEXTIF {
MERGEFIELDValue1 } <= { =IF(-2.45 >= 6*{
MERGEFIELDValue2 }, 2, -.45) }
Biçim Anahtarları
Belgedeki bir alan, sonuçta elde edilen değerin nasıl biçimlendirileceğini belirten biçimlendirme anahtarlarına sahip olabilir. Aspose.Words aşağıdaki biçim anahtarlarını destekler:
- @ - tarih ve saat biçimlendirme
- \# - sayı biçimlendirme
- \\\\* Büyük Harfler
- \\\\* FirstCap
- \\\\* Daha düşük
- \\\\* Yukarı
- \\\\* CHARFORMAT - sonucu alan kodunun ilk karakterine göre biçimlendir
- \\\\* MERGEFORMAT - sonucu eski sonucun nasıl biçimlendirildiğine göre biçimlendir
Alanlarda Tarih ve Sayı Biçimlendirme
Aspose.Words bir alan sonucunu hesapladığında, genellikle bir dizeyi bir sayı veya tarih değerine ayrıştırması ve aynı zamanda bir string.By varsayılan Aspose.Words, alan güncellemesi sırasında alan değerlerini hesaplarken ayrıştırma ve biçimlendirme gerçekleştirmek için geçerli iş parçacığı kültürünü kullanır ve mail merge. Alan güncellemesi sırasında hangi kültürün kullanıldığı üzerinde daha fazla kontrole izin veren FieldOptions sınıfı şeklinde sağlanan seçenekler de vardır.
- varsayılan olarak FieldUpdateCultureSource özelliği, geçerli iş parçacığı kültürünü kullanarak alanları biçimlendiren CurrentThread olarak ayarlanır
- bu özellik FieldCode olarak ayarlanabilir, böylece alanın alan kodundan ayarlanan dil bunun yerine biçimlendirme için kullanılır
Geçerli iş parçacığının Kültürünü Kullanarak Biçimlendirme
Alan hesaplaması sırasında kullanılan kültürü denetlemek için, alan hesaplamasını çağırmadan önce CurrentCulture özelliğini seçtiğiniz bir kültüre ayarlamanız yeterlidir.
Aşağıdaki kod örneği, güncelleştirme sırasında biçimlendirme alanlarında kullanılan kültürün nasıl değiştirileceğini gösterir:
EXAMPLE
Alanları biçimlendirmek için geçerli kültürü kullanmak, bir sistemin alan güncellemesi sırasında belgedeki tüm alanların nasıl biçimlendirildiğini kolayca ve tutarlı bir şekilde kontrol etmesini sağlar.
Belgedeki Kültürü Kullanarak Biçimlendirme
Öte yandan, Microsoft Word her bir alanı, alanda bulunan metnin diline göre biçimlendirir (özellikle, alan kodundan çalıştırmalar). Bazen alan güncellemesi sırasında, örneğin birçok farklı dilden oluşan içerik içeren belgeleri küreselleştirdiyseniz ve her alanın metinden kullanılan yerel ayarı onurlandırmasını istiyorsanız, bu istenen davranış olabilir. Aspose.Words bu işlevi de destekler.
Document sınıfı, belge içindeki alanların nasıl güncelleneceğini denetlemek için kullanılabilecek üyeler içeren bir FieldOptions özelliği sağlar.
Aşağıdaki kod örneği, alan güncelleştirmesi ve mail merge sırasında tarih biçimlendirmesi için kullanılan kültürün nereden seçileceğini nasıl belirleyeceğinizi gösterir:
EXAMPLE