Metinle Çalışma
Metinle Çalışma
Word belgesindeki metin, Run düğümleri (aynı yazı tipi biçimlendirmesini paylaşan ardışık karakterler) içinde Paragraph düğümleri olarak gruplandırılır. Aspose.Words FOSS for .NET her ikisini doğrudan sunar, ayrıca karakter biçimlendirmesi için Font, paragraf düzeyinde biçimlendirme için ParagraphFormat ve ağacın herhangi bir kısmında metni okuma veya değiştirme için Range. Bu kılavuz, koşu ve yazı tipleri, paragraf biçimlendirme, metni okuma ve değiştirme, yorumlar ve paragraf düzeyinde liste biçimlendirmesini kapsar.
Koşular ve Karakter Biçimlendirme
A Run, aynı biçimlendirme kümesini paylaşan bir metin aralığını temsil eder; Text özelliği düz metin içeriğini tutar ve Font özelliği (bir Font nesnesi) karakter düzeyinde biçimlendirmeyi tutar — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough ve daha fazlası. Font.ClearFormatting(), bir koşunun yazı tipini varsayılanlara sıfırlar. Bir paragrafın koşuları, onun Runs özelliği aracılığıyla, bir RunCollection aracılığıyla erişilebilir.
Paragraflar ve Paragraf Biçimlendirme
Paragraph, bir paragrafın koşularını (ve diğer satır içi içerikleri) içeren birleşik bir düğümdür; bir belgenin veya gövdenin paragrafları, bir ParagraphCollection (Body.Paragraphs) olarak ortaya çıkar. Paragraph.ParagraphFormat (bir ParagraphFormat nesnesi) paragraf düzeyindeki düzeni kontrol eder — Alignment, girintiler (LeftIndent, RightIndent, FirstLineIndent), boşluklar (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule) ve sayfalama davranışı (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting(), bunları varsayılanlara sıfırlar ve Paragraph.JoinRunsWithSameFormatting(), aynı biçimlendirmeye sahip yan yana koşuları birleştirir.
Aralık Kullanarak Metni Okuma ve Değiştirme
İçerik içeren her düğüm — bir Document, Section, Paragraph veya Run — bir Range ortaya çıkar. Range.Text, o aralıktaki her şeyin düz metnini döndürür ve Range.Replace(pattern, replacement), sadece o aralığa sınırlı bir bul ve değiştir işlemi gerçekleştirir; böylece örneğin, belgenin geri kalanını etkilemeden tek bir paragraftaki metni değiştirebilirsiniz. Range.Delete() aralığın içeriğini tamamen kaldırır.
Comments
Bir Comment düğümü, bir yorumu metindeki bir konuma bağlar; bir tanesini new Comment(doc, author, initial, dateTime) ile oluşturun ve gövde metnini SetText(text) ile ayarlayın, ardından belgeye diğer düğümler gibi ekleyin. Comment.AddReply(author, initial, dateTime, text) bir zincirli yanıt ekler ve RemoveReply(reply) / RemoveAllReplies() bunları kaldırır. Bir belgenin yorumları bir CommentCollection içinde toplanır.
Paragraf Düzeyinde Liste Biçimlendirme
Paragraph.ListFormat (bir ListFormat nesnesi) bir paragrafın bir listenin parçası olup olmadığını rapor eder ve kontrol eder: IsListItem ve ListLevelNumber mevcut durumunu rapor eder, ApplyBulletDefault() ve ApplyNumberDefault() paragrafı varsayılan bir madde işareti ya da numaralı liste öğesine dönüştürür, ListIndent() / ListOutdent() liste iç içeleme seviyesini değiştirir ve RemoveNumbers() tekrar normal bir paragrafa dönüştürür.
İpuçları ve En İyi Uygulamalar
- Metni oluşturucu ile yazmadan önce
DocumentBuilder.Fontüzerindeki yazı tipi özelliklerini ayarlayın; metni önce yazıp ardından bireyselRunnesnelerini yeniden biçimlendirmek yerine. Range.Replaceişlevini, gerçekten değiştirmek istediğiniz şeyi kapsayan en küçük aralığa sınırlayın — değişiklik tüm belgeye uygulanmaması gerektiğinde, tüm belge yerine birParagraphveyaSection‘nin aralığı üzerinde çağırın.- Programatik düzenlemelerden sonra
Paragraph.JoinRunsWithSameFormatting()çağırın, böylece gereksiz şekilde parçalanmış bir run yapısı oluşmaz. - Yerleşik varsayılanlar yeterli olduğunda, liste tanımlarını elle oluşturmak yerine hızlı bir varsayılan liste için
ListFormat.ApplyBulletDefault()/ApplyNumberDefault()kullanın. Comment.AddReplysonuçlarını doğrudanCommentdüğümleri olarak okuyun — yanıtlar tam yorum nesneleridir, düz stringler değildir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
Bir Run‘ın Font‘ını biçimlendirmek, yan metni görsel olarak değiştirmez | Yan metin, kendi Font örneğine sahip farklı bir Run içinde bulunur | Etkilenen her Run‘ı bulun ve biçimlendirin, ya da yazmadan önce DocumentBuilder.Font aracılığıyla biçimlendirmeyi ayarlayın |
Range.Replace hedeflenen alanın dışındaki metni değiştirir | Replace, daha dar bir düğümün aralığı yerine Document.Range üzerinde çağrıldı | Replace işlevini belirli Paragraph, Section veya diğer düğümün Range üzerinde çağırın |
Bir paragraf bir liste öğesi gibi görünüyor ancak IsListItem yanlış. | Madde işareti/sayı manuel metindir, gerçek liste biçimlendirmesi değildir. | Yazılan karakterler yerine ListFormat.ApplyBulletDefault() veya ApplyNumberDefault() ile gerçek liste biçimlendirmesi uygulayın. |
Belge beklenenden çok daha fazla Run düğümüne sahip. | Tekrarlanan küçük düzenlemeler, run’ları birleştirmeden ayırır. | Düzenleme gruplarından sonra Paragraph.JoinRunsWithSameFormatting() çağırın. |
FAQ
Run ile Paragraph arasındaki fark nedir?
Run, bir karakter biçimlendirme kümesini (Font) paylaşan bir metin aralığıdır; Paragraph ise bir veya daha fazla koşu (ve diğer satır içi içerik) ile paragraf düzeyinde biçimlendirme (ParagraphFormat) içeren birleşik düğümdür.
Bir belge ya da bölümdeki tüm metni nasıl okuyabilirim?
Text özelliğini, o düğümün Range özelliği üzerinden okuyun — örneğin, document.Range.Text veya section.Range.Text.
Sadece bir paragrafta metni nasıl bulup değiştiririm?
Document.Range üzerinde çağırmak yerine, o Paragraph‘in Range‘si üzerinde Replace(pattern, replacement)‘yi çağırın.
Bir belgeye yorum nasıl eklerim?
new Comment(doc, author, initial, dateTime) ile oluşturun, metnini SetText(text) ile ayarlayın ve ağaca ekleyin; ona Comment.AddReply(author, initial, dateTime, text) ile yanıt verin.
Bir paragrafı madde işaretli liste öğesine nasıl dönüştürürüm?
O paragrafın ListFormat‘i üzerinde ApplyBulletDefault()‘yi çağırın; numaralı bir liste için bunun yerine ApplyNumberDefault()‘yi kullanın.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Run | Bir karakter biçimlendirme setini paylaşan bir metin aralığı. |
Font | Karakter düzeyinde biçimlendirme — ad, boyut, kalın, italik, renk ve daha fazlası. |
Paragraph | Bir paragrafın koşularını ve biçimlendirmesini içeren birleşik düğüm. |
ParagraphFormat | Paragraf düzeyinde biçimlendirme — hizalama, girintiler, boşluk, sayfalama. |
ParagraphCollection | Tiplenmiş Paragraph düğümlerinin koleksiyonu, ör. Body.Paragraphs. |
Range | Belgenin bitişik bir bölgesi; Text, Replace ve Delete desteklenir. |
Comment | Metindeki bir konuma sabitlenmiş bir dizili yorum. |
CommentCollection | Belgenin yorum koleksiyonu. |
ListFormat | Bir paragrafın bir listede yer alıp almayacağını ve nasıl yer alacağını kontrol eder. |