Bekerja dengan Sections

Bekerja dengan Seksi

Dokumen Word dibagi menjadi satu atau lebih bagian, masing-masing dengan pengaturan halaman, margin, header, dan footer sendiri. Aspose.Words FOSS untuk .NET mewakili sebuah bagian sebagai Section node, yang berisi sebuah Body dan, secara opsional, header dan footer, serta sebuah PageSetup yang mengontrol tata letaknya. Halaman ini membahas model objek bagian, pengaturan halaman, header dan footer, serta tata letak teks multi-kolom.


Model Objek Seksi

Document.Sections mengembalikan sebuah SectionCollection – setiap Section dalam dokumen, masing-masing sebuah CompositeNode dan bagian dari pohon node. Sebuah Section berisi satu Body (sebuah Story yang menyimpan paragraf dan tabel utama seksi) dan, bila ada, node HeaderFooter yang dapat dijangkau melalui Section.HeadersFooters, sebuah HeaderFooterCollection. Document.FirstSection dan Document.LastSection memberikan akses langsung ke seksi batas. Section.AppendContent(), PrependContent(), dan ClearContent() memanipulasi konten tubuh seksi secara massal, sementara ClearHeadersFooters() dan DeleteHeaderFooterShapes() menghapus konten header/footer.


Membuat Seksi dan Pemisah Seksi

DocumentBuilder.InsertBreak(BreakType) menyisipkan pemisah pada kursor; BreakType mencakup SectionBreakNewPage, SectionBreakContinuous, SectionBreakNewColumn, SectionBreakEvenPage, dan SectionBreakOddPage untuk memulai seksi baru, bersama dengan nilai non-seksi PageBreak, ColumnBreak, LineBreak, dan ParagraphBreak. DocumentBuilder.MoveToSection() memindahkan kursor ke awal tubuh seksi tertentu. PageSetup.SectionStart membaca atau menetapkan tipe pemisah SectionStart yang tercatat pada seksi yang ada.


Pengaturan Halaman

Section.PageSetup adalah sebuah PageSetup yang mencakup dimensi halaman dan margin (PageWidth, PageHeight, TopMargin, BottomMargin, LeftMargin, RightMargin, Gutter), Orientation dan PaperSize, serta batas halaman per sisi (Borders, BorderAppliesTo via PageBorderAppliesTo, BorderDistanceFrom via PageBorderDistanceFrom, BorderAlwaysInFront, BorderSurroundsHeader, BorderSurroundsFooter). Penomoran baris dikontrol oleh LineNumberRestartMode, LineNumberCountBy, LineNumberDistanceFromText, dan LineStartingNumber. PageSetup.ClearFormatting() mengatur ulang ke default.


Header dan Footer

Section.HeadersFooters adalah sebuah HeaderFooterCollection dengan accessor bertipe – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – bersama dengan GetByHeaderFooterType(), Add(), dan LinkToPrevious(). Setiap HeaderFooter adalah sebuah Story (seperti Body) yang diidentifikasi oleh HeaderFooterType dan ditandai IsHeader / IsLinkedToPrevious. PageSetup.DifferentFirstPageHeaderFooter dan PageSetup.OddAndEvenPagesHeaderFooter mengontrol apakah Word mengharapkan varian header/footer halaman pertama dan halaman genap digunakan sama sekali.


Kolom Teks Berganda

PageSetup.TextColumns mengembalikan sebuah TextColumnCollection (Count, EvenlySpaced, LineBetween, Spacing, Width) dengan SetCount() untuk menata isi bagian dalam beberapa kolom. Kolom individu adalah instance TextColumn (Width, SpaceAfter) setelah koleksi diisi dengan lebih dari satu kolom.


Tips dan Praktik Terbaik

  • Pemutus bagian membawa pemformatan untuk bagian yang follows itu – mengatur PageSetup properti pada Section yang baru saja Anda buat (setelah InsertBreak) memengaruhi konten yang muncul setelah jeda, bukan sebelum itu.
  • Gunakan SectionBreakContinuous ketika Anda hanya membutuhkan perubahan pengaturan halaman (misalnya, beralih ke teks berkolom ganda) tanpa memulai halaman baru; gunakan SectionBreakNewPage ketika bagian baru harus selalu dimulai pada halaman baru.
  • HeaderFooterCollection.LinkToPrevious() menghubungkan kembali header/footer sebuah bagian untuk mewarisi konten bagian sebelumnya – lakukan ini sebelum menulis konten header/footer baru jika Anda ingin bagian baru dimulai secara independen dari yang sebelumnya.
  • PageSetup.DifferentFirstPageHeaderFooter dan OddAndEvenPagesHeaderFooter hanya berlaku jika varian HeaderFooterType yang sesuai (HeaderFirst, HeaderEven, dan seterusnya) memang ada di Section.HeadersFooters – aktifkan flag dan tambahkan header/footer yang sesuai bersama-sama.
  • Section.Body dan setiap HeaderFooter adalah instance Story yang terpisah – Range.Fields, bookmark, dan operasi lain yang berskala rentang pada Body bagian tidak secara otomatis menjangkau header dan footernya.

Masalah Umum

MasalahPenyebabPerbaikan
Pengaturan halaman bagian baru tidak sesuai dengan yang saya aturPageSetup diatur pada instance Section yang salahAtur PageSetup pada bagian yang follows pemisahannya, bukan yang sebelumnya
Konten header/footer dari bagian sebelumnya secara tak terduga muncul di bagian baruHeader/footer pada bagian baru masih terhubung ke bagian sebelumnyaPanggil HeaderFooterCollection.LinkToPrevious(false) (atau tambahkan konten header/footer yang berbeda) untuk memutuskan tautannya
Header/footer halaman pertama atau halaman genap diabaikanDifferentFirstPageHeaderFooter / OddAndEvenPagesHeaderFooter adalah false, atau varian HeaderFooterType yang cocok tidak adaSetel flag pada PageSetup dan pastikan varian header/footer yang bersesuaian ada
Tata letak multi-kolom tidak berlakuTextColumns.SetCount() dipanggil dengan jumlah 1, atau pada PageSetup bagian yang salahPanggil SetCount() dengan lebih dari satu kolom pada PageSetup.TextColumns bagian target

FAQ

Bagaimana cara memulai bagian baru tanpa memulai halaman baru?

Sisipkan jeda SectionBreakContinuous dengan DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous).

Bagaimana cara memberi sebuah bagian margin dan orientasi sendiri?

Sisipkan pemisah bagian, lalu atur properti pada PageSetup – TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation, dan PaperSize.

Bagaimana cara membuat halaman pertama suatu bagian menggunakan header yang berbeda?

Atur PageSetup.DifferentFirstPageHeaderFooter = true pada bagian itu, dan tambahkan HeaderFooter berjenis HeaderFirst (dan FooterFirst, jika diperlukan) ke koleksi HeadersFooters-nya.

Bagaimana cara menata teks isi bagian dalam dua kolom?

Panggil PageSetup.TextColumns.SetCount(2) pada bagian tersebut, lalu sesuaikan Spacing dan EvenlySpaced / nilai TextColumn.Width individu sesuai kebutuhan.


API Reference Ringkasan

Kelas / EnumDeskripsi
SectionNode bagian; Body, HeadersFooters, PageSetup
SectionCollectionSetiap Section dalam dokumen, melalui Document.Sections
Body / StoryKontainer konten utama untuk bagian (Body) atau header/footer (HeaderFooter)
PageSetupDimensi halaman, margin, orientasi, batas, dan kolom untuk sebuah bagian
HeaderFooter / HeaderFooterCollectionKonten header/footer dan accessor bertipe untuk sebuah bagian
HeaderFooterTypeMengidentifikasi varian header/footer (primary, first, even) mana yang dimiliki oleh HeaderFooter
TextColumn / TextColumnCollectionTata letak teks multi-kolom untuk sebuah bagian
PaperSize / Orientation / MarginsUkuran halaman, orientasi, dan nilai margin yang telah ditetapkan
PageBorderAppliesTo / PageBorderDistanceFromHalaman mana yang dicetak dengan batas halaman, dan tepi referensinya
SectionStart / BreakTypeJenis pemisah bagian yang dicatat pada sebuah bagian, dan jenis pemisahan yang diterima oleh DocumentBuilder.InsertBreak()
LineNumberRestartModeKetika penomoran baris otomatis dimulai kembali di dalam sebuah bagian

Lihat Juga

 Bahasa Indonesia