Bekerja dengan Gaya
Bekerja dengan Gaya
Panduan ini menunjukkan cara bekerja dengan gaya paragraf, karakter, tabel, dan daftar dalam Aspose.Words FOSS untuk .NET — mencari dan menerapkan gaya bawaan serta kustom, serta mengonfigurasi pemformatan bersyarat per wilayah pada gaya tabel.
Objek Style mewakili satu gaya bawaan atau yang didefinisikan pengguna — kumpulan bernama dari pemformatan paragraf, font, dan daftar yang diterapkan Word ketika sebuah paragraf atau run diberikan gaya tersebut. Setiap dokumen menampilkan gayanya melalui properti Document.Styles, yang mengembalikan StyleCollection. Gaya tabel direpresentasikan oleh TableStyle, subclass dari Style yang menambahkan pemformatan khusus tabel dan pemformatan kondisional per wilayah melalui ConditionalStyleCollection.
Jenis Gaya dan Identifikasi
Setiap Style memiliki properti Type bertipe StyleType, yang merupakan salah satu dari Paragraph, Character, Table, atau List — mencocokkan empat jenis gaya yang didukung Word. Gaya bawaan juga membawa nilai enum StyleIdentifier yang tidak bergantung pada locale (misalnya nilai yang sesuai dengan gaya judul, penekanan, dan hyperlink) sehingga kode dapat mencari gaya bawaan tanpa bergantung pada nama tampilan dalam bahasa tertentu. Nama yang dapat dibaca manusia untuk sebuah gaya tersedia melalui Style.Name, dan Style.Aliases mengembalikan nama alternatif apa pun yang dikenali Word untuk gaya yang sama. Style.BuiltIn melaporkan apakah gaya tersebut disertakan bersama Word sendiri versus didefinisikan dalam dokumen, dan Style.IsHeading melaporkan apakah gaya tersebut merupakan salah satu gaya judul bawaan.
Mengakses dan Mengelola Koleksi Gaya
StyleCollection adalah koleksi semua objek Style — bawaan dan kustom — yang terlampir pada sebuah dokumen, yang dapat diakses melalui Document.Styles. Ambil sebuah gaya berdasarkan nama tampilan menggunakan pengindeks StyleCollection — styles[name] — atau ambil gaya bawaan berdasarkan StyleIdentifier yang tidak bergantung pada locale menggunakan pengindeks yang sama — styles[sti] — yang lebih dapat diandalkan daripada pencarian nama di seluruh dokumen yang dibuat dalam bahasa yang berbeda. Gaya baru dibuat dengan StyleCollection.Add(type, name), menentukan StyleType dan sebuah nama, dan gaya yang ada dapat diduplikasi ke dalam koleksi dengan StyleCollection.AddCopy(style). StyleCollection.Count melaporkan berapa banyak gaya yang dimiliki dokumen, dan koleksi juga mengekspos DefaultFont dan DefaultParagraphFormat, yang menggambarkan pemformatan default seluruh dokumen yang diwarisi konten baru sebelum gaya eksplisit apa pun diterapkan. StyleCollection.ClearQuickStyleGallery() menghapus semua gaya dari galeri quick-style UI Word tanpa menghapus gaya itu sendiri.
Menerapkan Gaya pada Paragraf dan Run
Objek pemformatan yang dapat membawa gaya mengekspos baik properti Style (objek Style itu sendiri) maupun properti StyleName (jalan pintas yang menyelesaikan atau membuat gaya berdasarkan nama). ParagraphFormat.Style dan ParagraphFormat.StyleName menerapkan gaya paragraf, sementara Font.Style dan Font.StyleName menerapkan gaya karakter pada pemformatan run. Properti LinkedStyleName, BaseStyleName, dan NextParagraphStyleName milik sebuah gaya menjelaskan bagaimana gaya tersebut berhubungan dengan gaya lain: BaseStyleName memberi nama gaya yang mewarisi format yang belum ditetapkan, LinkedStyleName memberi nama gaya paragraf/karakter berpasangan (seperti yang dilakukan Word untuk gaya bawaan seperti Heading 1 dan gaya karakter yang ditautkan), dan NextParagraphStyleName memberi nama gaya yang ditetapkan Word ke paragraf baru yang diketik setelah satu yang menggunakan gaya ini.
Gaya Tabel dan Pemformatan Bersyarat
TableStyle memperluas Style dengan properti tata letak tabel seperti Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment, dan padding (LeftPadding, RightPadding, TopPadding, BottomPadding), plus RowStripe dan ColumnStripe, yang mengontrol berapa baris atau kolom pola banding diulang. Di luar pemformatan tabel yang seragam, TableStyle.ConditionalStyles mengembalikan ConditionalStyleCollection yang memuat satu ConditionalStyle per wilayah tabel — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, dan empat sel sudut (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Setiap ConditionalStyle memiliki Font, ParagraphFormat, Shading, Borders, dan padding sel masing-masing, dan properti Type-nya melaporkan wilayah ConditionalStyleType mana yang diwakilinya. ConditionalStyle.ClearFormatting() dan ConditionalStyleCollection.ClearFormatting() mengatur ulang pemformatan untuk satu wilayah atau seluruh set wilayah bersyarat.
Metadata Gaya dan Bendera Perilaku
Beberapa properti boolean dan numerik pada Style mengontrol bagaimana Word memperlakukan sebuah gaya dalam UI-nya, bukan bagaimana gaya tersebut dirender: Locked mencegah gaya diubah saat perlindungan pemformatan aktif, IsQuickStyle mengontrol apakah gaya muncul di galeri gaya cepat, AutomaticallyUpdate membuat gaya mendefinisikan ulang dirinya dari pemformatan langsung yang diterapkan secara manual, SemiHidden dan UnhideWhenUsed mengontrol visibilitas dalam daftar gaya sebelum dan sesudah penggunaan pertama, dan Priority memengaruhi urutan penyortiran di galeri. Sebuah gaya juga mengekspos properti List dan ListFormat ketika ia mendefinisikan penomoran daftar, dan Style.Remove() menghapus gaya dari StyleCollection-nya.
Tips dan Praktik Terbaik
- Lebih baik gunakan pengindeks
StyleCollectiondengan nilaiStyleIdentifierdaripada mencari berdasarkan nama saat menemukan gaya bawaan — nama diterjemahkan, tetapi nilaiStyleIdentifiertidak. - Atur
BaseStyleNameuntuk membangun hierarki gaya (misalnya, sekumpulan gaya judul yang semuanya mewarisi pilihan font dari satu gaya dasar) alih-alih mengulang format pada setiap gaya. - Saat menyalin gaya antar dokumen, gunakan
StyleCollection.AddCopy(style)daripada membaca dan menerapkan kembali setiap properti format secara manual. - Konfigurasikan wilayah
TableStyle.ConditionalStylesuntuk tabel berbanding alih-alih memformat baris bergantian secara manual dalam kode — format setiap wilayahConditionalStylediterapkan berdasarkanConditionalStyleType-nya, bukan dengan mengatur format langsung pada baris individu. - Periksa
Style.BuiltInsebelum menghapus atau mengganti nama gaya secara programatis; gaya bawaan biasanya direferensikan oleh nama di tempat lain dalam dokumen.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
StyleCollection pengindeks mengembalikan null untuk pencarian nama | Nama gaya tidak ada dalam dokumen ini, atau gaya bawaan belum pernah digunakan sehingga Word belum mewujudkannya | Periksa Style.Aliases untuk nama alternatif, atau gunakan pengindeks StyleCollection dengan StyleIdentifier untuk gaya bawaan sebagai gantinya |
Menetapkan StyleName secara tak terduga membuat gaya baru | StyleName membuat gaya yang dinamai jika belum ada dalam koleksi | Gunakan pengindeks StyleCollection terlebih dahulu untuk memastikan gaya ada, atau tetapkan objek Style secara langsung melalui properti Style |
Banding tabel tidak muncul setelah menerapkan TableStyle | Wilayah pemformatan bersyarat (OddRowBanding, EvenRowBanding, dan seterusnya) tidak pernah dikonfigurasi pada TableStyle.ConditionalStyles | Atur pemformatan pada entri ConditionalStyle yang relevan di ConditionalStyleCollection |
| Perubahan gaya tidak memengaruhi konten yang sudah menggunakan gaya tersebut | Pemformatan langsung (manual) diterapkan di atas gaya dan memiliki prioritas lebih tinggi | Hapus pemformatan langsung pada run/paragraf yang terpengaruh, atau atur Style.AutomaticallyUpdate |
FAQ
Bagaimana cara saya mendapatkan koleksi semua gaya dalam sebuah dokumen?
Baca Document.Styles, yang mengembalikan StyleCollection yang berisi setiap Style bawaan dan yang didefinisikan pengguna dalam dokumen tersebut.
Apa perbedaan antara Style dan StyleIdentifier?
Style adalah objek gaya sebenarnya dengan pemformatannya; StyleIdentifier adalah nilai enum yang tidak bergantung pada locale dan digunakan untuk mencari nilai tertentu bawaan gaya terlepas dari bahasa dokumen, melalui StyleCollection pengindeks.
Bagaimana gaya tabel berbeda dari gaya paragraf atau karakter?
TableStyle adalah subkelas dari Style yang menambahkan properti tata letak tabel (Alignment, CellSpacing, padding) dan koleksi ConditionalStyles untuk pemformatan spesifik wilayah seperti baris bergaris, baris header, dan sel sudut — konsep pemformatan yang tidak berlaku untuk gaya paragraf atau karakter.
Bisakah saya membuat gaya baru sepenuhnya alih-alih memodifikasi yang sudah ada?
Ya — panggil StyleCollection.Add(type, name) dengan StyleType yang diinginkan dan nama baru untuk membuat gaya kosong, kemudian atur properti pemformatannya (Font, ParagraphFormat, dan seterusnya untuk gaya paragraf/karakter).
Bagaimana cara menduplikasi sebuah gaya, termasuk dari dokumen lain?
Gunakan StyleCollection.AddCopy(style), dengan mengoper objek Style (yang dapat berasal dari StyleCollection milik Document yang berbeda) untuk menambahkan salinannya ke koleksi target.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
Style | Satu gaya paragraf, karakter, tabel, atau daftar yang bawaan atau didefinisikan pengguna |
StyleCollection | Koleksi semua gaya dalam sebuah dokumen, yang dapat diakses melalui Document.Styles |
StyleCollection pengindeks berdasarkan nama | Cari gaya berdasarkan nama tampilan, misalnya styles["Heading 1"] |
StyleCollection pengindeks berdasarkan identifier | Cari gaya bawaan berdasarkan identifier yang tidak bergantung pada locale, misalnya styles[StyleIdentifier.Heading1] |
StyleCollection.Add(type, name) | Buat gaya baru yang kosong dengan StyleType yang diberikan |
StyleCollection.AddCopy(style) | Salin gaya yang ada ke dalam koleksi ini |
StyleType | Enum yang membedakan gaya Paragraph, Character, Table, dan List |
StyleIdentifier | Pengidentifikasi yang tidak bergantung pada locale untuk gaya bawaan |
TableStyle | Sebuah subclass Style untuk pemformatan tabel, termasuk penataan kondisional per wilayah |
ConditionalStyleCollection | Kumpulan entri ConditionalStyle per wilayah pada TableStyle |
ConditionalStyle | Pemformatan (font, format paragraf, shading, border, padding) untuk satu wilayah tabel |
ConditionalStyleType | Enum yang mengidentifikasi wilayah tabel yang diterapkan pada ConditionalStyle |