Bölümlerle Çalışma
Bölümlerle Çalışmak
Bir Word belgesi bir veya daha fazla bölüme ayrılır; her birinin kendi sayfa düzeni, kenar boşlukları, üstbilgileri ve altbilgileri vardır. Aspose.Words FOSS için .NET bir bölümü şu şekilde temsil eder Section düğüm, içinde bir Body ve isteğe bağlı olarak üstbilgiler ve altbilgiler, ayrıca bir PageSetup bu, düzenini kontrol eder. Bu sayfa bölüm nesne modelini, sayfa düzenini, üstbilgileri ve altbilgileri ve çok sütunlu metin düzenini kapsar.
Bölüm Nesne Modeli
Document.Sections, bir SectionCollection döndürür – belgede bulunan her Section, her biri bir CompositeNode ve düğüm ağacının bir parçasıdır. Bir Section, bir Body içerir (bölümün ana paragraflarını ve tablolarını tutan bir Story) ve, mevcut olduğunda, Section.HeadersFooters aracılığıyla erişilebilen HeaderFooter düğümlerini, bir HeaderFooterCollection ile birlikte barındırır. Document.FirstSection ve Document.LastSection, sınır bölümlerine doğrudan erişim sağlar. Section.AppendContent(), PrependContent() ve ClearContent(), bir bölümün gövde içeriğini toplu olarak değiştirirken, ClearHeadersFooters() ve DeleteHeaderFooterShapes() başlık/dipnot içeriğini temizler.
Bölümler ve Bölüm Sonlandırıcıları Oluşturma
DocumentBuilder.InsertBreak(BreakType), imleçte bir sonlandırıcı ekler; BreakType, yeni bir bölüm başlatmak için SectionBreakNewPage, SectionBreakContinuous, SectionBreakNewColumn, SectionBreakEvenPage ve SectionBreakOddPage içerir, ayrıca bölüm dışı değerler PageBreak, ColumnBreak, LineBreak ve ParagraphBreak ile birlikte. DocumentBuilder.MoveToSection(), imleci belirli bir bölümün gövdesinin başına taşır. PageSetup.SectionStart, mevcut bir bölümde kaydedilmiş SectionStart sonlandırıcı türünü okur veya ayarlar.
Sayfa Ayarı
Section.PageSetup bir PageSetup örneğidir ve sayfa boyutları ve kenar boşluklarını kapsar (PageWidth, PageHeight, TopMargin, BottomMargin, LeftMargin, RightMargin, Gutter), Orientation ve PaperSize, ve kenar başına sayfa kenarları (Borders, BorderAppliesTo aracılığıyla PageBorderAppliesTo, BorderDistanceFrom aracılığıyla PageBorderDistanceFrom, BorderAlwaysInFront, BorderSurroundsHeader, BorderSurroundsFooter). Satır numaralandırması LineNumberRestartMode, LineNumberCountBy, LineNumberDistanceFromText ve LineStartingNumber tarafından kontrol edilir. PageSetup.ClearFormatting() varsayılanlara sıfırlar.
Üstbilgiler ve Altbilgiler
Section.HeadersFooters bir HeaderFooterCollection olup, tiplenmiş erişimciler sunar – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – ve GetByHeaderFooterType(), Add() ve LinkToPrevious() ile birlikte. Her HeaderFooter bir Story (örneğin Body) olup, HeaderFooterType ile tanımlanır ve IsHeader / IsLinkedToPrevious olarak işaretlenir. PageSetup.DifferentFirstPageHeaderFooter ve PageSetup.OddAndEvenPagesHeaderFooter Word’ün birinci sayfa ve çift sayfa üstbilgi/altbilgi varyantlarını kullanmasını bekleyip beklemediğini kontrol eder.
Çoklu Metin Sütunları
PageSetup.TextColumns, bir TextColumnCollection (Count, EvenlySpaced, LineBetween, Spacing, Width) döndürür ve SetCount() ile bölümün gövdesini çoklu sütunlarda düzenler. Tek tek sütunlar, koleksiyon birden fazla sütunla doldurulduğunda TextColumn örnekleridir (Width, SpaceAfter).
İpuçları ve En İyi Uygulamalar
- Bir bölüm sonu, bölümün biçimlendirmesini taşır follows bu – ayar
PageSetupözellikler birSectionaz önce oluşturduğunuz (sonraInsertBreak) kesintiden sonraki içeriği etkiler, öncekini etkilemez. - Yeni bir sayfa başlatmadan yalnızca sayfa ayarı değişikliği (örneğin, çoklu sütun metnine geçiş) gerektiğinde
SectionBreakContinuouskullanın; yeni bölümün her zaman yeni bir sayfada başlaması gerektiğindeSectionBreakNewPagekullanın. HeaderFooterCollection.LinkToPrevious()bir bölümün üstbilgi/altbilgisini önceki bölümün içeriğini devralacak şekilde yeniden bağlar – yeni üstbilgi/altbilgi içeriği yazmadan önce bunu yapın, yeni bölümün bir önceki bölümden bağımsız başlamasını istiyorsanız.PageSetup.DifferentFirstPageHeaderFooterveOddAndEvenPagesHeaderFooteryalnızca ilgiliHeaderFooterTypevaryantları (HeaderFirst,HeaderEvenvb.)Section.HeadersFootersiçinde gerçekten mevcutsa etkili olur – bayrağı etkinleştirin ve ilgili üstbilgi/altbilgiyi birlikte ekleyin.Section.Bodyve herHeaderFooterayrıStoryörnekleridir –Range.Fields, yer imleri ve bölümünBodyüzerindeki diğer aralık kapsamında yapılan işlemler otomatik olarak üstbilgi ve altbilgilerine ulaşmaz.
Yaygın Sorunlar
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Yeni bölümün sayfa ayarı, belirlediğimle eşleşmiyor | PageSetup, yanlış Section örneğinde ayarlandı | Ayarla PageSetup bölümdeki follows kesintide, öncekinde değil |
| Önceki bölümün üstbilgi/altbilgi içeriği yeni bir bölümde beklenmedik şekilde görünür | Yeni bölümün üstbilgi/altbilgi öğeleri hâlâ önceki bölüme bağlı | Bağlantıyı kesmek için HeaderFooterCollection.LinkToPrevious(false)‘ı çağırın (veya ayrı bir üstbilgi/altbilgi içeriği ekleyin) |
| İlk sayfa ya da çift sayfa üstbilgi/altbilgisi yok sayılır | DifferentFirstPageHeaderFooter / OddAndEvenPagesHeaderFooter false, ya da eşleşen HeaderFooterType varyantı mevcut değil | Bayrağı PageSetup üzerinde ayarlayın ve ilgili üstbilgi/altbilgi varyantının mevcut olduğundan emin olun. |
| Çok sütunlu düzen uygulanmaz. | TextColumns.SetCount(), 1 sayısı ile çağrıldı veya yanlış bölümün PageSetup‘inde. | Hedef bölümün PageSetup.TextColumns‘inde birden fazla sütunla SetCount()‘ı çağırın. |
FAQ
Yeni bir sayfa açmadan yeni bir bölüme nasıl başlanır?
SectionBreakContinuous kesintisini DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous) ile ekleyin.
Bir bölüme kendi kenar boşluklarını ve yönünü nasıl veririm?
Bir bölüm sonlandırması ekleyin, ardından yeni bölümün PageSetup – TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation ve PaperSize özelliklerini ayarlayın.
Bir bölümün ilk sayfasının farklı bir üstbilgi kullanmasını nasıl yaparım?
PageSetup.DifferentFirstPageHeaderFooter = true‘ı o bölümde ayarlayın ve HeadersFooters koleksiyonuna HeaderFirst türünde bir HeaderFooter (gerekirse FooterFirst) ekleyin.
Bir bölümün gövde metnini iki sütunda nasıl düzenlerim?
Bölüm üzerinde PageSetup.TextColumns.SetCount(2)‘ı çağırın, ardından gerektiği gibi Spacing ve EvenlySpaced / bireysel TextColumn.Width değerlerini ayarlayın.
API Reference Özeti
| Sınıf / Enum | Açıklama |
|---|---|
Section | Bir bölüm düğümü; Body, HeadersFooters, PageSetup |
SectionCollection | Belgedeki her Section, Document.Sections aracılığıyla |
Body / Story | Bir bölüm (Body) veya üstbilgi/altbilgi (HeaderFooter) için ana içerik kapsayıcısı |
PageSetup | Bir bölüm için sayfa boyutları, kenar boşlukları, yön, kenarlıklar ve sütunlar |
HeaderFooter / HeaderFooterCollection | Üstbilgi/altbilgi içeriği ve bir bölüm için tiplenmiş erişiciler |
HeaderFooterType | Bir HeaderFooter öğesinin hangi başlık/altbilgi varyantı (primary, first, even) olduğunu belirler |
TextColumn / TextColumnCollection | Bir bölüm için çok sütunlu metin düzeni |
PaperSize / Orientation / Margins | Sayfa boyutu, yönlendirme ve önceden ayarlanmış kenar boşluğu değerleri |
PageBorderAppliesTo / PageBorderDistanceFrom | Sayfa kenarlığının hangi sayfalara basıldığını ve referans kenarını |
SectionStart / BreakType | Bir bölümde kaydedilen bölüm ayırma türü ve DocumentBuilder.InsertBreak() kabul ettiği ayırma türleri |
LineNumberRestartMode | Otomatik satır numaralandırması bir bölüm içinde yeniden başladığında |