Bekerja dengan Teks
Bekerja dengan Teks
Teks dalam dokumen Word diatur ke dalam node Run (karakter berurutan yang berbagi format font yang sama) yang dikelompokkan di dalam node Paragraph. Aspose.Words FOSS untuk .NET mengekspos keduanya secara langsung, bersama dengan Font untuk format karakter, ParagraphFormat untuk format tingkat paragraf, dan Range untuk membaca atau mengganti teks pada bagian mana pun dari pohon. Panduan ini mencakup run dan font, format paragraf, membaca dan mengganti teks, komentar, serta format daftar tingkat paragraf.
Run dan Format Karakter
Sebuah Run mewakili rentang teks yang berbagi satu set format; properti Text-nya menyimpan konten teks polos dan properti Font-nya (sebuah objek Font) menyimpan format tingkat karakter — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough, dan banyak lagi. Font.ClearFormatting() mengatur ulang font run ke nilai default. Run dalam paragraf tersedia melalui properti Runs-nya, sebuah RunCollection.
Paragraf dan Format Paragraf
Paragraph adalah node komposit yang berisi run (dan konten inline lain) dari satu paragraf; paragraf dokumen atau badan diekspos sebagai ParagraphCollection (Body.Paragraphs). Paragraph.ParagraphFormat (sebuah objek ParagraphFormat) mengontrol tata letak tingkat paragraf — Alignment, indentasi (LeftIndent, RightIndent, FirstLineIndent), spasi (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), dan perilaku pagination (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() mengatur ulang ini ke nilai default, dan Paragraph.JoinRunsWithSameFormatting() menggabungkan run berdekatan yang memiliki format identik.
Membaca dan Mengganti Teks dengan Range
Setiap node yang berisi konten — sebuah Document, Section, Paragraph, atau Run — mengekspos sebuah Range. Range.Text mengembalikan teks polos dari semua hal dalam rentang tersebut, dan Range.Replace(pattern, replacement) melakukan pencarian-dan-penggantian yang terbatas hanya pada rentang itu, sehingga Anda dapat, misalnya, mengganti teks di dalam satu paragraf tanpa menyentuh sisa dokumen. Range.Delete() menghapus konten rentang tersebut secara langsung.
Comments
Sebuah node Comment menambatkan komentar pada sebuah lokasi dalam teks; buat satu dengan new Comment(doc, author, initial, dateTime) dan atur teks tubuhnya dengan SetText(text), kemudian sisipkan ke dalam dokumen seperti node lainnya. Comment.AddReply(author, initial, dateTime, text) menempelkan balasan berutas, dan RemoveReply(reply) / RemoveAllReplies() menghapusnya. Komentar-komentar sebuah dokumen dikumpulkan dalam sebuah CommentCollection.
Pemformatan Daftar pada Tingkat Paragraf
Paragraph.ListFormat (sebuah objek ListFormat) melaporkan dan mengendalikan apakah sebuah paragraf merupakan bagian dari daftar: IsListItem dan ListLevelNumber melaporkan keadaan saat ini, ApplyBulletDefault() dan ApplyNumberDefault() mengubah paragraf menjadi item daftar berpoin atau bernomor default, ListIndent() / ListOutdent() mengubah tingkat bersarang daftarnya, dan RemoveNumbers() mengembalikannya menjadi paragraf biasa.
Tips dan Praktik Terbaik
- Atur properti font pada
DocumentBuilder.Fontsebelum menulis teks dengan builder daripada menulis teks terlebih dahulu dan memformat ulang objekRunsecara individual setelahnya. - Batasi
Range.Replaceke rentang terkecil yang mencakup apa yang sebenarnya ingin Anda ubah — panggil pada rentangParagraphatauSectionalih-alih seluruh dokumen ketika perubahan tidak seharusnya berlaku pada seluruh dokumen. - Panggil
Paragraph.JoinRunsWithSameFormatting()setelah serangkaian penyuntingan programatik untuk menghindari struktur run yang tidak perlu terfragmentasi. - Gunakan
ListFormat.ApplyBulletDefault()/ApplyNumberDefault()untuk daftar default cepat alih-alih membangun definisi daftar secara manual ketika default bawaan sudah cukup. - Baca hasil
Comment.AddReplysebagai nodeCommentitu sendiri — balasan berupa objek komentar lengkap, bukan string biasa.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
Memformat Run’s Font tidak mengubah tampilan teks di sebelahnya | Teks di sebelahnya berada dalam Run yang berbeda dengan instance Font miliknya sendiri | Temukan dan format setiap Run yang terpengaruh, atau atur pemformatan melalui DocumentBuilder.Font sebelum menulis |
Range.Replace mengubah teks di luar area yang dimaksud | Replace dipanggil pada Document.Range alih-alih rentang node yang lebih sempit | Panggil Replace pada Paragraph spesifik, Section, atau Range node lainnya |
Sebuah paragraf terlihat seperti item daftar tetapi IsListItem salah | Bullet/nomor adalah teks manual, bukan format daftar yang sebenarnya | Terapkan format daftar yang sebenarnya dengan ListFormat.ApplyBulletDefault() atau ApplyNumberDefault() alih-alih karakter yang diketik |
Dokumen memiliki jauh lebih banyak node Run daripada yang diharapkan | Pengeditan kecil berulang memisahkan run tanpa menggabungkannya kembali | Panggil Paragraph.JoinRunsWithSameFormatting() setelah batch pengeditan |
FAQ
Apa perbedaan antara Run dan Paragraph?
Sebuah Run adalah rentang teks yang berbagi satu set format karakter (Font); sebuah Paragraph adalah node komposit yang berisi satu atau lebih run (dan konten inline lainnya) serta format tingkat paragraf (ParagraphFormat).
Bagaimana cara membaca semua teks dalam dokumen atau bagian?
Baca properti Text dari Range node tersebut — misalnya, document.Range.Text atau section.Range.Text.
Bagaimana cara menemukan dan mengganti teks hanya dalam satu paragraf?
Panggil Replace(pattern, replacement) pada Range milik Paragraph tersebut, bukan pada Document.Range.
Bagaimana cara menambahkan komentar ke dokumen?
Buat itu dengan new Comment(doc, author, initial, dateTime), tetapkan teksnya dengan SetText(text), dan sisipkan ke dalam pohon; balas ke itu dengan Comment.AddReply(author, initial, dateTime, text).
Bagaimana cara mengubah paragraf menjadi item daftar berpoin?
Panggil ApplyBulletDefault() pada ListFormat paragraf tersebut; gunakan ApplyNumberDefault() untuk daftar bernomor sebagai gantinya.
API Reference Ringkasan
| Class/Method | Deskripsi |
|---|---|
Run | Sebuah rentang teks yang berbagi satu set pemformatan karakter. |
Font | Pemformatan tingkat karakter — nama, ukuran, tebal, miring, warna, dan lainnya. |
Paragraph | Node komposit yang berisi run dan pemformatan satu paragraf. |
ParagraphFormat | Pemformatan tingkat paragraf — perataan, indentasi, spasi, pagination. |
ParagraphCollection | Koleksi bertipe Paragraph nodes, misalnya Body.Paragraphs. |
Range | Area kontigu dalam dokumen; mendukung Text, Replace, dan Delete. |
Comment | Komentar berutas yang terpasang pada lokasi dalam teks. |
CommentCollection | Koleksi komentar dokumen. |
ListFormat | Mengontrol apakah dan bagaimana paragraf berpartisipasi dalam daftar. |