• <menu id="w2i4a"></menu>
  • logo Aspose.Words開發(fā)者指南

    文檔首頁>>Aspose.Words開發(fā)者指南>>Word格式處理控件Aspose.Words for .NET教程——插入段落并調(diào)整樣式

    Word格式處理控件Aspose.Words for .NET教程——插入段落并調(diào)整樣式


    Aspose.Words For .NET是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺應(yīng)用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。

    >>Aspose.Words for .NET已經(jīng)更新至v20.5,提供顯示/隱藏語法和拼寫錯誤的功能,引入了可在文檔內(nèi)部使用水印的新幫助程序類,添加了為OOXML文檔設(shè)置壓縮級別的功能,點(diǎn)擊下載體驗(yàn)


    插入段落

    DocumentBuilder.Writeln 也可以在文檔中插入文本字符串,但除此之外,它還會添加一個段落分隔符。該DocumentBuilder.Font 屬性還指定當(dāng)前字體格式,而該 屬性確定當(dāng)前段落格式 DocumentBuilder.ParagraphFormat 。 下例顯示了如何將段落插入文檔。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithDocument();
    // Initialize document.
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    // Specify font formatting
    Font font = builder.Font;
    font.Size = 16;
    font.Bold = true;
    font.Color = System.Drawing.Color.Blue;
    font.Name = "Arial";
    font.Underline = Underline.Dash;
    
    // Specify paragraph formatting
    ParagraphFormat paragraphFormat = builder.ParagraphFormat;
    paragraphFormat.FirstLineIndent = 8;
    paragraphFormat.Alignment = ParagraphAlignment.Justify;
    paragraphFormat.KeepTogether = true;
    
    builder.Writeln("A whole paragraph.");
    dataDir = dataDir + "DocumentBuilderInsertParagraph_out.doc";
    doc.Save(dataDir);

    計算段落的行數(shù)

    如果要計算任何Word文檔的段落中的行數(shù),則可以使用以下代碼示例。

      // The path to the documents directory.
                string dataDir = RunExamples.GetDataDir_WorkingWithDocument();
    
                string fileName = "Properties.doc";
                Document document = new Document(dataDir + fileName);
    
                var collector = new LayoutCollector(document);
                var it = new LayoutEnumerator(document);
    
                foreach (Paragraph paragraph in document.GetChildNodes(NodeType.Paragraph, true))
                {
                    var paraBreak = collector.GetEntity(paragraph);
    
                    object stop = null;
                    var prevItem = paragraph.PreviousSibling;
                    if (prevItem != null)
                    {
                        var prevBreak = collector.GetEntity(prevItem);
                        if (prevItem is Paragraph)
                        {
                            it.Current = collector.GetEntity(prevItem); // para break
                            it.MoveParent();    // last line
                            stop = it.Current;
                        }
                        else if (prevItem is Table)
                        {
                            var table = (Table)prevItem;
                            it.Current = collector.GetEntity(table.LastRow.LastCell.LastParagraph); // cell break
                            it.MoveParent();    // cell
                            it.MoveParent();    // row
                            stop = it.Current;
                        }
                        else
                        {
                            throw new Exception();
                        }
                    }
    
                    it.Current = paraBreak;
                    it.MoveParent();
    
                    // We move from line to line in a paragraph.
                    // When paragraph spans multiple pages the we will follow across them.
                    var count = 1;
                    while (it.Current != stop)
                    {
                        if (!it.MovePreviousLogical())
                            break;
                        count++;
                    }
    
                    const int MAX_CHARS = 16;
                    var paraText = paragraph.GetText();
                    if (paraText.Length > MAX_CHARS)
                        paraText = $"{paraText.Substring(0, MAX_CHARS)}...";
    
                    Console.WriteLine($"Paragraph '{paraText}' has {count} line(-s).");
                }

    段落格式

    當(dāng)前段落格式由DocumentBuilder.ParagraphFormat屬性返回的ParagraphFormat對象表示。該對象封裝了Microsoft Word中可用的各種段落格式設(shè)置屬性。您可以通過調(diào)用ParagraphFormat.ClearFormatting輕松將段落格式重置為默認(rèn)樣式,即默認(rèn)樣式為普通樣式,左對齊,無縮進(jìn),無間距,無邊框和無陰影 。下例顯示了如何設(shè)置段落格式。

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    // Set paragraph formatting properties
    ParagraphFormat paragraphFormat = builder.ParagraphFormat;
    paragraphFormat.Alignment = ParagraphAlignment.Center;
    paragraphFormat.LeftIndent = 50;
    paragraphFormat.RightIndent = 50;
    paragraphFormat.SpaceAfter = 25;
    
    // Output text
    builder.Writeln("I'm a very nice formatted paragraph. I'm intended to demonstrate how the left and right indents affect word wrapping.");
    builder.Writeln("I'm another nice formatted paragraph. I'm intended to demonstrate how the space after paragraph looks like.");
    
    dataDir = dataDir + "DocumentBuilderSetParagraphFormatting_out.doc";
    doc.Save(dataDir);

    應(yīng)用段落樣式

    一些格式對象(例如Font或ParagraphFormat)支持樣式。單個內(nèi)置或用戶定義的樣式由Style對象表示,該對象包含相應(yīng)的樣式屬性,例如名稱,基本樣式,樣式的字體和段落格式,等等。

    此外, Style 對象提供Style.StyleIdentifier 屬性,該 屬性返回由Style.StyleIdentifier 枚舉值表示的與語言環(huán)境無關(guān)的樣式標(biāo)識符 。關(guān)鍵是Microsoft Word中內(nèi)置樣式的名稱針對不同的語言進(jìn)行了本地化。使用樣式標(biāo)識符,無論文檔語言是什么,都可以找到正確的樣式。枚舉值對應(yīng)于Microsoft Word內(nèi)置樣式,例如Normal,Heading 1,Heading 2等。所有用戶定義的樣式均分配有 StyleIdentifier.User值。下例顯示了如何應(yīng)用段落樣式。

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    // Set paragraph style
    builder.ParagraphFormat.StyleIdentifier = StyleIdentifier.Title;
    
    builder.Write("Hello");
    dataDir = dataDir + "DocumentBuilderApplyParagraphStyle_out.doc";
    doc.Save(dataDir);

    插入樣式分隔符以放置不同的段落樣式

    一些格式對象(例如Font或ParagraphFormat)支持樣式。單個內(nèi)置或用戶定義的樣式由Style對象表示,該對象包含相應(yīng)的樣式屬性,例如名稱,基本樣式,樣式的字體和段落格式,等等。

    可以使用Ctrl + Alt +在MS Word中輸入鍵盤快捷鍵將樣式分隔符添加到段落的末尾。此功能允許在一個邏輯打印段落中使用兩種不同的段落樣式。如果要使特定標(biāo)題開頭的某些文本出現(xiàn)在目錄中,但又不想整個標(biāo)題出現(xiàn)在目錄中,則可以使用此功能。下面的代碼示例演示如何插入樣式分隔符以放置不同的段落樣式。

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    Style paraStyle = builder.Document.Styles.Add(StyleType.Paragraph, "MyParaStyle");
    paraStyle.Font.Bold = false;
    paraStyle.Font.Size = 8;
    paraStyle.Font.Name = "Arial";
    
    // Append text with "Heading 1" style.
    builder.ParagraphFormat.StyleIdentifier = StyleIdentifier.Heading1;
    builder.Write("Heading 1");
    builder.InsertStyleSeparator();
    
    // Append text with another style.
    builder.ParagraphFormat.StyleName = paraStyle.Name;
    builder.Write("This is text with some other formatting ");
     
    dataDir = dataDir + "InsertStyleSeparator_out.doc";
    
    // Save the document to disk.
    doc.Save(dataDir);

    在段落上應(yīng)用邊框和底紋

    邊框由BorderCollection表示。這是按索引或按邊框類型訪問的Border對象的集合。邊框類型由BorderType枚舉表示。枚舉的某些值適用于多個或僅一個文檔元素。例如,BorderType.Bottom適用于段落或表格單元格,而BorderType.DiagonalDown僅指定表格單元格中的對角線邊框。

    邊框集合和每個單獨(dú)的邊框都具有相似的屬性,例如顏色,線條樣式,線條寬度,距文本的距離以及可選的陰影。它們由相同名稱的屬性表示。您可以通過組合屬性值來實(shí)現(xiàn)不同的邊框類型。此外,BorderCollection和Border對象都允許您通過調(diào)用Border.ClearFormatting方法將這些值重置為默認(rèn)值。請注意,當(dāng)邊框?qū)傩灾刂脼槟J(rèn)值時,邊框是不可見的。該 著色 類包含文檔元素的材質(zhì)屬性。您可以設(shè)置所需的明暗處理紋理以及應(yīng)用于元素的背景和前景的顏色。

    陰影紋理設(shè)置有 TextureIndex 枚舉值,該值允許將各種圖案應(yīng)用到 Shading 對象。例如,要為文檔元素設(shè)置背景色,請使用TextureIndex.TextureSolid值并適當(dāng)設(shè)置前景色。下例顯示了如何對段落應(yīng)用邊框和陰影。下例顯示了如何對段落應(yīng)用邊框和陰影。

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    // Set paragraph borders
    BorderCollection borders = builder.ParagraphFormat.Borders;
    borders.DistanceFromText = 20;
    borders[BorderType.Left].LineStyle = LineStyle.Double;
    borders[BorderType.Right].LineStyle = LineStyle.Double;
    borders[BorderType.Top].LineStyle = LineStyle.Double;
    borders[BorderType.Bottom].LineStyle = LineStyle.Double;
    
    // Set paragraph shading
    Shading shading = builder.ParagraphFormat.Shading;
    shading.Texture = TextureIndex.TextureDiagonalCross;
    shading.BackgroundPatternColor = System.Drawing.Color.LightCoral;
    shading.ForegroundPatternColor = System.Drawing.Color.LightSalmon;
    
    builder.Write("I'm a formatted paragraph with double border and nice shading.");
    dataDir = dataDir + "DocumentBuilderApplyBordersAndShadingToParagraph_out.doc";
    doc.Save(dataDir);

    還想要更多嗎?您可以點(diǎn)擊閱讀
    【2019 · Aspose最新資源整合】查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();