2017-05-25 69 views

回答

1

請注意使用useBuilderFormatting的InsertHtml()重載將不會覆蓋具有內聯樣式的HTML文本樣式。您可以實施INodeChangingCallback以將樣式/格式應用於HTML文本。請查看以下代碼片段以供參考。

public static void HtmlFormatting() 
{ 
    // Create a blank document object 
    Document doc = new Document(); 
    DocumentBuilder builder = new DocumentBuilder(doc); 

    // Set up and pass the object which implements the handler methods. 
    doc.NodeChangingCallback = new HandleNodeChanging_FontChanger(); 
    // Insert sample HTML content 
    builder.InsertHtml("<p>Hello World</p>"); 
    doc.NodeChangingCallback = null; 

    builder.InsertHtml("<p>Some Test Text</p>"); 


    doc.Save(@"Out.docx"); 
} 



public class HandleNodeChanging_FontChanger : INodeChangingCallback 
{ 
    // Implement the NodeInserted handler to set default font settings for every Run node inserted into the Document 
    void INodeChangingCallback.NodeInserted(NodeChangingArgs args) 
    { 

     // Change the font of inserted text contained in the Run nodes. 
     if (args.Node.NodeType == NodeType.Run) 
     { 

      Run run = (Run)args.Node; 
      Console.WriteLine(run.Text); 
      run.Font.StyleName = "Intense Emphasis"; 
      // Aspose.Words.Font font = ((Run)args.Node).Font; 
      // font.Size = 24; 
      // font.Name = "Arial"; 
     } 
    } 

    void INodeChangingCallback.NodeInserting(NodeChangingArgs args) 
    { 
     // Do Nothing 
    } 

    void INodeChangingCallback.NodeRemoved(NodeChangingArgs args) 
    { 
     // Do Nothing 
    } 

    void INodeChangingCallback.NodeRemoving(NodeChangingArgs args) 
    { 
     // Do Nothing 
    } 
} 

我使用Aspose作爲開發者傳播者。

+0

謝謝你的回答,你的解決方案有更多的樣式選擇。另外,除[this](https://apireference.aspose.com/)之外,是否有任何好的aspose api參考,因爲它沒有太多的信息。 P.S .:如果我可以問你幾個aspose features direclty,那你會不會介意給我一個聯繫電子郵件或其他東西? – Max

+0

@Max,對於API參考不能幫助您的不便,我們深表歉意。我們將非常感謝您的反饋,並會改進它。此外,請隨時在stackoverflow或[Aspose論壇](https://www.aspose.com/community/forums/aspose.words-product-family/75/showforum.aspx)上尋求進一步協助。 –

0

嘛,一對夫婦找到解決辦法了幾個小時之後,我得到這個工作:

builder.ParagraphFormat.ClearFormatting(); 
builder.ParagraphFormat.Style = styles["word_style1"]; 
builder.Writeln(post.Title); 

builder.InsertParagraph(); 
builder.ParagraphFormat.Style = styles["word_style2"]; 
builder.InsertHtml(post.Annotation, true); 

builder.InsertParagraph(); 
builder.ParagraphFormat.Style = styles["word_style3"]; 
builder.InsertHyperlink(post.Url, post.Url, false); 

PS:我希望有任何變通辦法或改進做得更好。

相關問題