1. 程式人生 > >Aspose.Words實用教程:如何處理文件分段——Aspose.Words中的分段

Aspose.Words實用教程:如何處理文件分段——Aspose.Words中的分段

Aspose.Words For .Net是一種高階Word文件處理API,用於執行各種文件管理和操作任務。API支援生成,修改,轉換,呈現和列印文件,而無需在跨平臺應用程式中直接使用Microsoft Word。此外,API支援所有流行的Word處理檔案格式,並允許將Word文件匯出或轉換為固定佈局檔案格式和最常用的影象/多媒體格式。>>下載Aspose.Words for .NET最新試用版

接下來我們將進入“如何使用Aspose.Words以程式設計方式處理文件分段”的介紹。在生成文件時,使用section非常有用。您可以組合文件,根據從多個模板文件複製的多個部分構建輸出文件,或者根據某些應用程式邏輯刪除不需要的部分,從而有效地將公共模板文件過濾到特定場景。

Aspose.Words中的部分

文件的各節由Section和SectionCollection類表示。Section物件是Document節點的直接子節點,可以通過Document.Sections屬性訪問。

▲獲得一分段


每個分段由一個Section物件表示,該物件可以通過索引從Document.Sections集合中獲取。預設頁邊距、頁首/頁尾距離和列間距取決於模擬MS Word行為的當前區域。例如,現在英語(美國)和英語(英國)的所有頁邊距都是1英寸。左,右,上邊距為2.5釐米; 德國底部邊距為2釐米。如果沒有為提及引數設定顯式值,則新預設值用於新文件和載入文件。

下面的程式碼示例顯示瞭如何訪問指定索引處的節:

//指向documents目錄的路徑。
string dataDir = RunExamples.GetDataDir_WorkingWithSections();
Document doc = new Document(dataDir + "Document.doc");
Section section = doc.Sections[0];
section.PageSetup.LeftMargin = 90; // 3.17 cm
section.PageSetup.RightMargin = 90; // 3.17 cm
section.PageSetup.TopMargin = 72; // 2.54 cm
section.PageSetup.BottomMargin = 72; // 2.54 cm
section.PageSetup.HeaderDistance = 35.4; // 1.25 cm
section.PageSetup.FooterDistance = 35.4; // 1.25 cm
section.PageSetup.TextColumns.Spacing = 35.4; // 1.25 cm

▲新增一個分段


Document物件提供了可以使用Document.Sections訪問的節集合。這將返回包含文件部分的SectionCollection物件。然後,您可以使用此物件上的SectionCollection.Add方法將一個節新增到文件的末尾。下面的程式碼示例顯示瞭如何將一個部分新增到文件的末尾:

Document doc = new Document(dataDir);
Section sectionToAdd = new Section(doc);
doc.Sections.Add(sectionToAdd);

▲刪除一個分段


以與上面討論的相同方式,使用Document.Sections檢索文件的部分。然後,可以使用SectionCollection.Remove刪除指定的節或SectionCollection.RemoveAt以刪除指定索引處的節。 下面的程式碼示例顯示瞭如何刪除指定索引處的節:

Document doc = new Document(dataDir);
doc.Sections.RemoveAt(0);

下面的程式碼示例展示瞭如何從文件中刪除所有部分:

Document doc = new Document(dataDir);
doc.Sections.Clear();

▲新增分段內容


如果要複製和插入除了節分隔符和節屬性之外的節的主要文字,請使用Section.PrependContentSection.AppendContent為要複製的內容傳遞Section物件。如果沒有建立新的分段,頁首和頁尾不會被複制。前一種方法在該部分的開頭插入內容的副本,而後者在該部分的末尾插入內容的副本。下面的程式碼示例顯示瞭如何附加現有部分的內容:

//文件目錄的路徑。
string dataDir = RunExamples.GetDataDir_WorkingWithSections();
Document doc = new Document(dataDir + "Section.AppendContent.doc");
// This is the section that we will append and prepend to.
Section section = doc.Sections[2];

//複製第1部分的內容並將其插入指定部分的開頭。
Section sectionToPrepend = doc.Sections[0];
section.PrependContent(sectionToPrepend);

//複製第二部分的內容並將其插入指定部分的末尾。
Section sectionToAppend = doc.Sections[1];
section.AppendContent(sectionToAppend);

▲刪除分段內容


要刪除節的主要文字,請使用Section.ClearContent。要刪除節中的頁首和頁尾,請呼叫Section.ClearHeadersFooters。下面的示例顯示瞭如何刪除節的主要內容:

//文件目錄的路徑。
string dataDir = RunExamples.GetDataDir_WorkingWithSections();

Document doc = new Document(dataDir + "Document.doc");
Section section = doc.Sections[0];
section.ClearContent();

▲克隆一分段


使用Section.Clone方法建立特定節的副本。下面的示例顯示瞭如何建立特定部分的副本:

//文件目錄的路徑。
string dataDir = RunExamples.GetDataDir_WorkingWithSections();

Document doc = new Document(dataDir + "Document.doc");
Section cloneSection = doc.Sections[0].Clone();

▲在文件之間複製分段


將一個文件完全或部分複製到另一個文件是一項非常流行的任務 這是實現這一點的“模式”。在插入來自其他文件的任何節點之前,必須使用Document.ImportNode方法匯入該節點。該Document.ImportNode方法使原始節點的副本,並更新所有的內部文件特定的屬性,如清單和樣式,使他們的目標文件中有效。 下面的示例顯示瞭如何在文件之間複製分段:

//文件目錄的路徑。
string dataDir = RunExamples.GetDataDir_WorkingWithSections();

Document srcDoc = new Document(dataDir + "Document.doc");
Document dstDoc = new Document();

Section sourceSection = srcDoc.Sections[0];
Section newSection = (Section)dstDoc.ImportNode(sourceSection, true);
dstDoc.Sections.Add(newSection);
dataDir = dataDir + "Document.Copy_out.doc";
ds