Menggunakan DocumentBuilder untuk Memodifikasi Dokumen
Menentukan Pemformatan
Pemformatan Fonta
Pemformatan font saat ini diwakili oleh objek Font
yang dikembalikan oleh properti DocumentBuilder.Font
. Kelas Font
berisi berbagai macam properti font yang dimungkinkan dalam Microsoft Word.
Contoh kode berikut menunjukkan cara mengatur pemformatan font. |
Pemformatan Sel
Pemformatan sel digunakan selama pembuatan tabel. Ini diwakili oleh objek CellFormat
yang dikembalikan oleh properti DocumentBuilder.CellFormat
. CellFormat merangkum berbagai properti sel tabel seperti lebar atau perataan vertikal.
Contoh kode berikut menunjukkan cara membuat tabel yang berisi satu sel berformat. |
Pemformatan Baris
Pemformatan baris saat ini ditentukan oleh objek RowFormat
yang dikembalikan oleh properti DocumentBuilder.RowFormat
. Objek merangkum informasi tentang semua pemformatan baris tabel.
Contoh be low code menunjukkan cara membuat tabel yang berisi satu sel dan menerapkan pemformatan baris. |
Pemformatan Daftar
Aspose.Words memungkinkan pembuatan daftar dengan mudah dengan menerapkan pemformatan daftar. DocumentBuilder menyediakan properti DocumentBuilder.ListFormat
yang mengembalikan objek ListFormat
. Objek ini memiliki beberapa metode untuk memulai dan mengakhiri daftar dan untuk menambah / mengurangi indentasi.
Ada dua jenis daftar umum dalam Microsoft Word: berpoin dan bernomor. |
- Untuk memulai daftar berpoin, panggil ListFormat.applyBulletDefault.
- Untuk memulai daftar bernomor, panggil ListFormat.applyNumberDefault.
Poin atau angka dan pemformatan ditambahkan ke paragraf saat ini dan semua paragraf selanjutnya dibuat menggunakan DocumentBuilder hingga ListFormat.removeNumbers dipanggil untuk menghentikan pemformatan daftar berpoin.
Dalam dokumen Word, daftar dapat terdiri dari hingga sembilan level. Pemformatan daftar untuk setiap level menentukan poin atau angka apa yang digunakan, indentasi kiri, spasi antara poin dan teks, dll.
- Untuk menambah level daftar paragraf saat ini sebanyak satu level, panggil ListFormat.listIndent.
- Untuk mengurangi level daftar paragraf saat ini sebanyak satu level, panggil ListFormat.listOutdent.
Metode mengubah level daftar dan menerapkan properti pemformatan level baru.
Contoh kode berikut menunjukkan cara membuat daftar bertingkat.
Pengaturan Halaman dan Pemformatan Bagian
Penyiapan halaman dan properti bagian dienkapsulasi dalam objek PageSetup
yang dikembalikan oleh properti DocumentBuilder.PageSetup
. Objek berisi semua atribut pengaturan halaman dari suatu bagian (margin kiri, margin bawah, ukuran kertas, dan sebagainya) sebagai properti.
Contoh kode berikut menunjukkan cara mengatur properti seperti ukuran halaman dan orientasi untuk bagian saat ini. |
Menerapkan Gaya
Beberapa objek pemformatan seperti Font atau ParagraphFormat mendukung gaya. Satu gaya bawaan atau yang ditentukan pengguna diwakili oleh objek Style
yang berisi properti gaya yang sesuai seperti nama, gaya dasar, font, dan pemformatan paragraf gaya, dan seterusnya.
Selanjutnya, objek Style menyediakan properti Style.getStyleIdentifier yang mengembalikan pengenal gaya lokal-independen yang diwakili oleh nilai enumerasi Style.StyleIdentifier. Intinya adalah bahwa nama-nama gaya bawaan dalam Microsoft Word dilokalkan untuk bahasa yang berbeda. Dengan menggunakan pengenal gaya, Anda dapat menemukan gaya yang benar apa pun bahasa dokumennya. Nilai pencacahan sesuai dengan gaya bawaan Microsoft Word seperti Normal, Heading 1, Heading 2, dll. Semua gaya yang ditentukan pengguna diberi StyleIdentifier.User value.
Contoh kode berikut menunjukkan cara menerapkan gaya paragraf. |
Batas dan Bayangan
Batas diwakili oleh BorderCollection. Ini adalah kumpulan objek Batas yang diakses oleh indeks atau berdasarkan tipe batas. Jenis batas diwakili oleh pencacahan BorderType
. Beberapa nilai pencacahan dapat diterapkan ke beberapa atau hanya satu elemen dokumen. Misalnya, BorderType.Bottom
hanya berlaku untuk paragraf atau sel tabel, sedangkan BorderType.DiagonalDown
hanya menentukan batas diagonal dalam sel tabel.
Kumpulan batas dan setiap batas terpisah memiliki atribut serupa seperti warna, gaya garis, lebar garis, jarak dari teks, dan bayangan opsional. Mereka diwakili oleh properti dengan nama yang sama. Anda dapat mencapai jenis batas yang berbeda dengan menggabungkan nilai properti. Selain itu, objek BorderCollection dan Border memungkinkan Anda menyetel ulang nilai ini ke default dengan memanggil metode Border.clearFormatting. Perhatikan bahwa ketika properti batas disetel ulang ke nilai default, batas tersebut tidak terlihat.
Kelas Shading berisi atribut bayangan untuk elemen dokumen. Anda dapat mengatur tekstur bayangan yang diinginkan dan warna yang diterapkan pada latar belakang dan latar depan elemen. |
Tekstur bayangan diatur dengan a TextureIndex nilai pencacahan yang memungkinkan penerapan berbagai pola pada objek Shading. Misalnya, untuk mengatur warna latar belakang untuk elemen dokumen, gunakan TextureIndex.TextureSolid nilai dan atur warna bayangan latar depan yang sesuai.
Contoh di bawah ini menunjukkan cara menerapkan batas dan bayangan ke paragraf. |
Jepret ke Kisi
Aspose.Words menyediakan dua properti ParagraphFormat.SnapToGrid
dan Font.SnapToGrid
untuk mendapatkan dan menyetel properti paragraf ke kisi.
Memindahkan Kursor
Mendeteksi Posisi Kursor Saat Ini
Anda dapat memperoleh posisi kursor pembuat saat ini kapan saja. Properti DocumentBuilder.getCurrentNode mengembalikan simpul yang saat ini dipilih di pembuat ini. Node adalah turunan langsung dari sebuah paragraf. Setiap operasi penyisipan yang Anda lakukan menggunakan DocumentBuilder
akan disisipkan sebelum DocumentBuilder.CurrentNode
. Saat paragraf saat ini kosong atau kursor diposisikan tepat sebelum akhir paragraf, DocumentBuilder.CurrentNode
mengembalikan null.
Selain itu, Anda dapat menggunakan properti DocumentBuilder.getCurrentParagraph, yang mendapatkan paragraf yang saat ini dipilih dalam DocumentBuilder ini. Contoh below code menunjukkan cara mengakses simpul saat ini di pembuat dokumen.
Pindah ke Simpul Mana Pun (Paragraf dan Turunannya)
Jika Anda memiliki simpul objek dokumen, yang merupakan paragraf atau turunan langsung dari paragraf, Anda dapat mengarahkan kursor pembuat ke simpul ini. Gunakan metode DocumentBuilder.moveTo untuk melakukan ini. Contoh kode berikut menunjukkan cara memindahkan posisi kursor ke simpul tertentu.
Pindah ke Awal/Akhir Dokumen
Jika Anda perlu pindah ke awal dokumen, panggil DocumentBuilder.moveToDocumentStart. Jika Anda perlu pindah ke akhir dokumen, panggil DocumentBuilder.moveToDocumentEnd.
Pindah ke Bagian
Jika Anda bekerja dengan dokumen yang berisi beberapa bagian, Anda dapat pindah ke bagian yang diinginkan menggunakan DocumentBuilder.moveToSection. Metode ini memindahkan kursor ke awal bagian tertentu dan menerima indeks bagian yang diperlukan. Ketika indeks bagian lebih besar dari atau sama dengan 0, itu menentukan indeks dari awal dokumen dengan 0 sebagai bagian pertama. Ketika indeks bagian kurang dari 0, itu menentukan indeks dari akhir dokumen dengan -1 sebagai bagian terakhir. Contoh be low code menunjukkan cara memindahkan posisi kursor ke bagian yang ditentukan. Anda dapat mengunduh file templat contoh ini dari di sini.
Pindah ke Header / Footer
Saat Anda perlu menempatkan beberapa data ke dalam header atau footer, Anda harus memindahkannya terlebih dahulu menggunakan DocumentBuilder.moveToHeaderFooter.Metode ini menerima nilai enumerasi HeaderFooterType yang mengidentifikasi jenis header atau footer ke tempat kursor harus dipindahkan.
Jika Anda ingin membuat header dan footer yang berbeda untuk halaman pertama, Anda perlu menyetel properti PageSetup.getDifferentFirstPageHeaderFooter ke true. Jika Anda ingin membuat header dan footer yang berbeda untuk halaman genap dan ganjil, Anda perlu menyetel PageSetup.getOddAndEvenPagesHeaderFooter ke true.
Jika Anda perlu kembali ke cerita utama, gunakanDocumentBuilder.moveToSection untuk keluar dari header atau footer. Contoh di bawah ini membuat header dan footer dalam dokumen menggunakan DocumentBuilder.
Pindah ke Paragraf
GunakanDocumentBuilder.moveToParagraph untuk memindahkan kursor ke paragraf yang diinginkan di bagian saat ini. Anda harus meneruskan dua parameter ke metode ini: paragraphIndex (indeks paragraf yang akan dipindahkan) dan characterIndex (indeks karakter di dalam paragraf).
Navigasi dilakukan di dalam cerita saat ini dari bagian saat ini. Artinya, jika Anda memindahkan kursor ke header utama bagian pertama, maka paragraphIndex menentukan indeks paragraf di dalam header bagian tersebut.
Ketika paragraphIndex lebih besar dari atau sama dengan 0, itu menentukan indeks dari awal bagian dengan 0 sebagai paragraf pertama. Ketika paragraphIndex kurang dari 0, itu menentukan indeks dari akhir bagian dengan -1 sebagai paragraf terakhir. Indeks karakter saat ini hanya dapat ditentukan sebagai 0 untuk pindah ke awal paragraf atau -1 untuk pindah ke akhir paragraf. Contoh kode berikut menunjukkan cara memindahkan posisi kursor ke paragraf yang ditentukan. Anda dapat mengunduh file templat contoh ini dari di sini.
Pindah ke Sel Tabel
Gunakan DocumentBuilder.moveToCell jika Anda perlu memindahkan kursor ke sel tabel di bagian saat ini. Metode ini menerima empat parameter:
- tableIndex - indeks tabel yang akan dipindahkan.
- rowIndex - indeks baris dalam tabel.
- columnIndex - indeks kolom dalam tabel.
- characterIndex - indeks karakter di dalam sel.
Navigasi dilakukan di dalam cerita saat ini dari bagian saat ini.
Untuk parameter indeks, ketika indeks lebih besar dari atau sama dengan 0, itu menentukan indeks dari awal dengan 0 sebagai elemen pertama. Ketika indeks kurang dari 0, itu menentukan indeks dari akhir dengan -1 menjadi elemen terakhir.
Perhatikan juga bahwa characterIndex saat ini hanya dapat menentukan 0 untuk berpindah ke awal sel atau -1 untuk berpindah ke akhir sel. Contoh kode berikut menunjukkan cara memindahkan posisi kursor ke sel tabel yang ditentukan. Anda dapat mengunduh file templat contoh ini dari di sini.
Pindah ke Bookmark
Penanda sering digunakan untuk menandai tempat-tempat tertentu dalam dokumen tempat elemen baru akan disisipkan. Untuk memindahkan ke penanda, gunakan DocumentBuilder.moveToBookmark. Metode ini memiliki dua kelebihan. Yang paling sederhana tidak menerima apa pun selain nama bookmark tempat kursor akan dipindahkan. Contoh kode berikut menunjukkan cara memindahkan posisi kursor ke bookmark.
Kelebihan beban ini memindahkan kursor ke posisi tepat setelah bookmark dimulai dengan nama yang ditentukan. Kelebihan lainnya DocumentBuilder.moveToBookmark memindahkan kursor ke penanda dengan presisi yang lebih tinggi. Ini menerima dua parameter boolean tambahan:
- isStart menentukan apakah akan memindahkan kursor ke awal atau ke akhir bookmark.
- isAfter menentukan apakah akan memindahkan kursor setelah posisi awal atau akhir bookmark, atau memindahkan kursor sebelum posisi awal atau akhir bookmark.
Contoh kode berikut menunjukkan cara memindahkan posisi kursor tepat setelah bookmark berakhir.
Menyisipkan teks baru dengan cara ini tidak menggantikan teks bookmark yang ada. Perhatikan bahwa beberapa penanda dalam dokumen ditetapkan ke bidang formulir. Pindah ke bookmark seperti itu dan menyisipkan teks di sana menyisipkan teks ke dalam kode bidang formulir. Meskipun ini tidak akan membatalkan bidang formulir, teks yang disisipkan tidak akan terlihat karena menjadi bagian dari kode bidang.
Pindah ke Bidang Merge
Terkadang Anda mungkin perlu melakukan" manual " Mail Merge menggunakan DocumentBuilder
atau mengisi bidang gabungan dengan cara khusus di dalam pengendali peristiwa Mail Merge. Saat itulah DocumentBuilder.moveToMergeField bisa berguna. Metode menerima nama bidang gabungan. Ini memindahkan kursor ke posisi tepat di luar bidang penggabungan yang ditentukan dan menghapus bidang penggabungan. Contoh kode berikut menunjukkan cara memindahkan kursor ke posisi tepat di luar bidang penggabungan yang ditentukan.
Bagaimana Mengkonversi Antara Unit Pengukuran
Sebagian besar properti objek yang disediakan dalam Aspose.Words API yang mewakili beberapa pengukuran (lebar / tinggi, margin, dan berbagai jarak) menerima nilai dalam poin (1 inci sama dengan 72 poin). Terkadang ini tidak nyaman sehingga ada kelas ConvertUtil
yang menyediakan fungsi pembantu untuk mengonversi antara berbagai unit pengukuran. Ini memungkinkan konversi inci ke poin, poin ke inci, piksel ke poin, dan poin ke piksel. Saat piksel diubah menjadi titik dan sebaliknya, piksel dapat dilakukan pada resolusi 96 dpi (titik per inci) atau pada resolusi dpi yang ditentukan.
ConvertUtil
Contoh kode berikut menunjukkan cara menentukan properti halaman dalam inci.