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

    文檔首頁(yè)>>Aspose.Words開(kāi)發(fā)者指南>>Aspose.Words for .NET樣式處理教程——如何根據(jù)樣式提取內(nèi)容

    Aspose.Words for .NET樣式處理教程——如何根據(jù)樣式提取內(nèi)容


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

    接下來(lái)我們將進(jìn)入關(guān)于“樣式處理”的介紹,在Aspose.Words中學(xué)會(huì)如何根據(jù)樣式提取內(nèi)容。

    >>Aspose.Words for .NET迎來(lái)2020第一次更新v20.1,支持插入LINQ Reporting Engine標(biāo)簽,點(diǎn)擊下載體驗(yàn)


    如何根據(jù)樣式提取內(nèi)容

    簡(jiǎn)單地說(shuō),從Word文檔中檢索基于樣式的內(nèi)容對(duì)于識(shí)別、列出和計(jì)數(shù)段落以及使用特定樣式格式化的文本非常有用。例如,可能需要識(shí)別文檔中特定類型的內(nèi)容,例如示例、標(biāo)題、引用、關(guān)鍵字、圖名和案例研究。

    同時(shí),我們還可以用于利用由文檔使用的樣式定義的文檔結(jié)構(gòu),將文檔重新用于其他輸出,例如HTML。實(shí)際上,這就是Aspose文檔的構(gòu)建方式,將Aspose.Words進(jìn)行了測(cè)試。使用Aspose.Words構(gòu)建的工具將獲取源Word文檔,并將其分為特定標(biāo)題級(jí)別的主題。使用Aspose.Words生成XML文件,該文件用于構(gòu)建左側(cè)顯示的導(dǎo)航樹(shù)。然后,Aspose.Words將每個(gè)主題轉(zhuǎn)換為HTML。

    使用Aspose.Words檢索Word文檔中以特定樣式設(shè)置格式的文本的解決方案通常是經(jīng)濟(jì)且直接的。為了說(shuō)明Aspose.Words如何輕松處理基于樣式的內(nèi)容,讓我們看一個(gè)示例。在此示例中,我們將從示例Word文檔中檢索具有特定段落樣式和字符樣式格式的文本,這將涉及以下內(nèi)容:

    • 使用Document類打開(kāi)Word文檔。文檔中的所有段落和所有運(yùn)行。
    • 僅選擇所需的段落和運(yùn)行。

    具體來(lái)說(shuō),將從此示例Word文檔中檢索以“標(biāo)題1”段落樣式和“強(qiáng)烈強(qiáng)調(diào)”字符樣式設(shè)置格式的文本。在此示例中,使用“標(biāo)題1”段落樣式設(shè)置格式的文本是“插入標(biāo)簽”,“快速樣式”和“主題”,使用“強(qiáng)烈強(qiáng)調(diào)”字體設(shè)置的文本是藍(lán)色的幾種實(shí)例,斜體,粗體文本,例如“畫(huà)廊”和“整體外觀”。

    Aspose.Words for .NET樣式處理教程——如何根據(jù)樣式提取內(nèi)容

    在Aspose中,基于樣式的查詢的實(shí)現(xiàn)非常簡(jiǎn)單。word文檔對(duì)象模型,因?yàn)樗皇鞘褂昧艘呀?jīng)存在的工具。這個(gè)解決方案實(shí)現(xiàn)了兩個(gè)類方法:

    • hsbystylename——這個(gè)方法檢索文檔中具有特定樣式名稱的段落的數(shù)組。
    • RunsByStyleName—此方法檢索文檔中具有特定樣式名稱的運(yùn)行的數(shù)組。

    這兩種方法非常相似,唯一的區(qū)別是節(jié)點(diǎn)類型和段落和運(yùn)行節(jié)點(diǎn)中樣式信息的表示形式。下面是段落bystylename的一個(gè)實(shí)現(xiàn):在下面的例子中找到所有使用指定格式的段落。

    // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
    public static ArrayList ParagraphsByStyleName(Document doc, string styleName)
    {
        // Create an array to collect paragraphs of the specified style.
        ArrayList paragraphsWithStyle = new ArrayList();
        // Get all paragraphs from the document.
        NodeCollection paragraphs = doc.GetChildNodes(NodeType.Paragraph, true);
        // Look through all paragraphs to find those with the specified style.
        foreach (Paragraph paragraph in paragraphs)
        {
            if (paragraph.ParagraphFormat.Style.Name == styleName)
                paragraphsWithStyle.Add(paragraph);
        }
        return paragraphsWithStyle;
    }

    還需要指出的是,段落集合不會(huì)立即產(chǎn)生開(kāi)銷,因?yàn)橹挥挟?dāng)訪問(wèn)段落中的項(xiàng)目時(shí),段落才會(huì)被加載到該集合中。然后,我們需要做的就是使用標(biāo)準(zhǔn)的foreach運(yùn)算符瀏覽集合,并將具有指定樣式的段落添加到paragraphsWithStyle數(shù)組中。段落樣式名稱可以在Paragraph.ParagraphFormat 對(duì)象的Style.Name 屬性中找到。 盡管我們使用NodeType.Run 檢索運(yùn)行節(jié)點(diǎn),但RunsByStyleName的實(shí)現(xiàn)幾乎相同。Run 對(duì)象的Font.Style 屬性用于訪問(wèn)運(yùn)行節(jié)點(diǎn)。下面的示例查找所有以指定樣式設(shè)置格式的運(yùn)行。

    // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
    public static ArrayList RunsByStyleName(Document doc, string styleName)
    {
        // Create an array to collect runs of the specified style.
        ArrayList runsWithStyle = new ArrayList();
        // Get all runs from the document.
        NodeCollection runs = doc.GetChildNodes(NodeType.Run, true);
        // Look through all runs to find those with the specified style.
        foreach (Run run in runs)
        {
            if (run.Font.Style.Name == styleName)
                runsWithStyle.Add(run);
        }
        return runsWithStyle;
    }

    在實(shí)現(xiàn)這兩個(gè)查詢時(shí),您所需要做的就是傳遞一個(gè)文檔對(duì)象并指定要檢索的內(nèi)容的樣式名稱:下面的示例將運(yùn)行查詢并顯示結(jié)果。

    // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithStyles();
    string fileName = "TestFile.doc";
    // Open the document.
    Document doc = new Document(dataDir + fileName);
    
    // Define style names as they are specified in the Word document.
    const string paraStyle = "Heading 1";
    const string runStyle = "Intense Emphasis";
    
    // Collect paragraphs with defined styles. 
    // Show the number of collected paragraphs and display the text of this paragraphs.
    ArrayList paragraphs = ParagraphsByStyleName(doc, paraStyle);
    Console.WriteLine(string.Format("Paragraphs with \"{0}\" styles ({1}):", paraStyle, paragraphs.Count));
    foreach (Paragraph paragraph in paragraphs)
        Console.Write(paragraph.ToString(SaveFormat.Text));
    
    // Collect runs with defined styles. 
    // Show the number of collected runs and display the text of this runs.
    ArrayList runs = RunsByStyleName(doc, runStyle);
    Console.WriteLine(string.Format("\nRuns with \"{0}\" styles ({1}):", runStyle, runs.Count));
    foreach (Run run in runs)
        Console.WriteLine(run.Range.Text);

    最終結(jié)果

    Aspose.Words for .NET樣式處理教程——如何根據(jù)樣式提取內(nèi)容


    還想要更多嗎?您可以點(diǎn)擊閱讀【2019 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)聯(lián)系慧都客服,我們很高興為您提供查詢和咨詢。


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();