.NET'de Bölümlerle Nasıl Çalışılır
Bu kılavuz, bölüm sonları oluşturmayı, sayfa ayarlarını yapılandırmayı ve üstbilgi, altbilgi ve çok sütunlu düzeni yönetmeyi gösterir Aspose.Words FOSS .NET için, kullanarak Section and PageSetup sınıfları. Belge içinde zaten bulunan bölümleri okuma, yeni bir bölümü şu ile başlatma DocumentBuilder, sayfa boyutlarını ve kenar boşluklarını yapılandırma, üstbilgi ve altbilgi varyantları ekleme ve gövde metnini birden fazla sütunda düzenleme.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
Aspose.Words FOSS for .NET henüz bir NuGet paketi yayınlamıyor – bunun yerine kütüphaneyi kaynaktan derleyin. https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git deposunu klonlayın, ardından .NET SDK’sı ile Release yapılandırmasında Aspose.Words.sln derleyin ve projenizden oluşan Aspose.Words derlemesini referans alın. Kütüphane .NET Standard 2.0’ı hedeflediğinden, .NET Framework 4.6.2+ ve .NET 6/8/10 üzerinde çalışır.
Adım 2: Gerekli Sınıfları İçe Aktarın
Bir using Aspose.Words; yönergesi ekleyin – Section, PageSetup, HeaderFooter ve bu kılavuzda kullanılan ilgili enum’lar, Document ve DocumentBuilder ile birlikte doğrudan Aspose.Words ad alanında bulunur.
Adım 3: Belgedeki Mevcut Bölümleri Oku
Document.Sections, belgede bulunan her Section‘yi tutan bir SectionCollection döndürür, her biri aynı zamanda genel düğüm ağacının bir CompositeNode‘dir. Document.FirstSection ve Document.LastSection, koleksiyonu yinelemeden sınır bölümlerine doğrudan erişim sağlar. Her Section, bir Body içerir — diğer herhangi bir Story gibi aynı yolla erişilir — ve mevcut olduğunda, Section.HeadersFooters aracılığıyla ulaşılabilen üst bilgi ve alt bilgi içeriği.
Adım 4: Bölüm Kesmesiyle Yeni Bir Bölüm Başlat
Call DocumentBuilder.InsertBreak(BreakType) imleçte yeni bir bölüm başlatmak için. Geç BreakType.SectionBreakNewPage yeni bölümün her zaman yeni bir sayfada başlaması gerektiğinde, BreakType.SectionBreakContinuous yalnızca sayfa ayarı değişikliği gerektiğinde (örneğin, çok sütunlu metne geçiş) sayfa sonu zorlamadan, ya da BreakType.SectionBreakNewColumn, SectionBreakEvenPage, ve SectionBreakOddPage Word’ün desteklediği diğer bölüm-başlangıç davranışları için. Bir bölüm sonu, bölümün biçimlendirmesini taşır follows onu, bu yüzden ayarlayın PageSetup yeni üzerindeki özellikleri Section – önceki değil – bölme eklendikten sonra. DocumentBuilder.MoveToSection(sectionIndex) belirli bir bölümün gövdesinin başına imleci taşır, ve PageSetup.SectionStart okur ya da ayarlar SectionStart mevcut bir bölümde zaten kaydedilmiş kesme türünü.
Adım 5: Sayfa Boyutlarını ve Kenar Boşluklarını Yapılandır
Her Section.PageSetup, bir PageSetup örneğidir. Sayfa boyutları ve kenar boşlukları için PageWidth, PageHeight, LeftMargin, RightMargin, TopMargin, BottomMargin ve Gutter‘i ayarlayın veya bir Margins ön ayarını doğrudan PageSetup.Margins‘a atayın. Orientation ve PaperSize, sayfa yönelimini ve kağıt boyutunu kontrol eder. Sayfa kenarlıkları Borders (bir BorderCollection), BorderAppliesTo (PageBorderAppliesTo), BorderDistanceFrom (PageBorderDistanceFrom), BorderAlwaysInFront, BorderSurroundsHeader ve BorderSurroundsFooter ile yapılandırılır. PageSetup.ClearFormatting()‘i çağırarak bir bölümün sayfa ayarlarını sıfırdan yapılandırmadan önce varsayılanlara geri döndürün.
Adım 6: Üst Bilgi ve Alt Bilgi Ekleyin ve Bağlayın
Section.HeadersFooters, tiplenmiş erişimcileri olan bir HeaderFooterCollection‘dir — HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven — ve ayrıca GetByHeaderFooterType() ile HeaderFooterType ve Add() aracılığıyla yeni bir öğe eklemek için arama yapılabilir. Her HeaderFooter, bir Story olup, IsHeader ve IsLinkedToPrevious olarak işaretlenmiştir. İlgili HeaderFirst/FooterFirst ya da HeaderEven/FooterEven varyantını eklemeden önce PageSetup.DifferentFirstPageHeaderFooter veya PageSetup.OddAndEvenPagesHeaderFooter‘yı etkinleştirin — bayrak ve varyant yalnızca birlikte etkili olur. HeaderFooterCollection.LinkToPrevious()‘i çağırarak bir bölümün üst bilgisini veya alt bilgisini önceki bölümün içeriğini devralacak şekilde yeniden bağlayabilir veya yeni bölümün bağımsız içerikle başlaması için bağlantıyı kesebilirsiniz.
Adım 7: Gövde Metnini Birden Çok Sütunda Düzenle
PageSetup.TextColumns bir TextColumnCollection döndürür. Gövde metninin akması gereken sütun sayısını belirterek SetCount()‘yi çağırın, ardından EvenlySpaced, Spacing, LineBetween ve Width‘yi ayarlayarak sütunların nasıl düzenleneceğini kontrol edin. Koleksiyon birden fazla sütun içerdiğinde, bireysel TextColumn örnekleri kendi Width ve SpaceAfter‘larını ortaya çıkarır.
Adım 8: Bölüm İçeriğini Temizle veya Toplu Düzenle
Section.AppendContent() ve PrependContent() başka bir bölümün gövde içeriğini buna kopyalar; ClearContent() bir bölümün gövdesini toplu olarak boşaltır. ClearHeadersFooters() ve DeleteHeaderFooterShapes(), bölümü kaldırmadan bölüm genelinde başlık ve altbilgi içeriğini temizler.
Yaygın Sorunlar ve Çözümler
Yeni bir bölümün sayfa ayarı, belirttiklerimle eşleşmiyor PageSetup yanlış yerde ayarlandı Section örneğinde. Bir bölüm kesmesi, ardından gelen bölümün biçimlendirmesini taşır – ayarlayın PageSetup sonraki bölümde InsertBreak(), öncekinde değil.
Önceki bölümün üstbilgi veya altbilgi içeriği beklenmedik bir şekilde yeni bir bölümde görünüyor Yeni bölümün üstbilgi veya altbilgisi hâlâ önceki bölüme bağlı. Çağırın HeaderFooterCollection.LinkToPrevious(false), ya da yeni bölüme ayrı bir üstbilgi/altbilgi içeriği ekleyin, böylece bağlantısını kaldırın.
İlk sayfa veya çift sayfa üstbilgi/altbilgi yok sayılır DifferentFirstPageHeaderFooter or OddAndEvenPagesHeaderFooter is false, veya eşleşen HeaderFooterType varyant mevcut değil Section.HeadersFooters. Bayrağı ayarla PageSetup ve karşılık gelen üstbilgi/altbilgi varyantını birlikte ekleyin.
Çok sütunlu düzen uygulanmaz TextColumns.SetCount() bir sayısı bir olan bir sayım ile ya da yanlış bölümün PageSetup. Çağır SetCount() hedef bölümde birden fazla sütunla PageSetup.TextColumns.
Bölüm sonu yanlış belge konumuna eklendi DocumentBuilder.InsertBreak(BreakType) yapıcının mevcut imlecinde ekler. Kullan DocumentBuilder.MoveToSection() ya da yapıcının diğer imleç-konumlandırma üyelerini, imleci çağırmadan önce konumlandırmak için InsertBreak().
Sıkça Sorulan Sorular
Yeni bir sayfa başlatmadan yeni bir bölüm nasıl başlatılır?
DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous) ile bir SectionBreakContinuous kesmesi ekleyin.
Bir bölüme kendi kenar boşlukları ve yönelimini nasıl atarım?
Bir bölüm sonu ekleyin, ardından yeni bölümün PageSetup üzerine TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation ve PaperSize değerlerini ayarlayın.
Bir bölümün ilk sayfasının farklı bir başlık kullanmasını nasıl ayarlarım?
O bölümde PageSetup.DifferentFirstPageHeaderFooter = true ayarlayın ve HeadersFooters koleksiyonuna HeaderFirst türünde bir HeaderFooter (gerekirse FooterFirst) ekleyin.
Bir bölümün gövde metnini iki sütun halinde nasıl düzenlerim?
Bölümde PageSetup.TextColumns.SetCount(2) çağırın, ardından gerektiğinde Spacing, EvenlySpaced veya bireysel TextColumn.Width değerlerini ayarlayın.
İlk ve son bölümlere doğrudan nasıl erişirim?
Document.Sections içine indeksleme yapmak yerine Document.FirstSection ve Document.LastSection okuyun.