簡體   English   中英

使用Xceed WPF工具包中的富文本格式的DocX ReplaceText

[英]DocX ReplaceText using rich text from Xceed's WPF Toolkit

無法使用Microsoft.Office.Interop.Word ,我正在使用Xceed DocX從WPF字段獲取數據並將其寫入Word文件。 我需要用RTB中的文本和格式替換Word文件中的«field» 如果我使用像這樣的簡單方法:

/// <summary>
/// Replaces field location with given formatted text
/// </summary>
/// <param name="mergeField">Target location</param>
/// <param name="textToWrite">Rich, formatted text to process and insert</param>
public static void FindReplaceRich(string mergeField, string textToWrite)
{
    while (document.FindAll(mergeField).Count > 0)
    {
        document.ReplaceText("«" + mergeField + "»", textToWrite);                
    }
}

上面的代碼用於未格式化的文本,因此在這種情況下,我的Word文件得到了一個愚蠢的RTF 腳本,就像這樣: {\\ rtf1 \\ ansi \\ ansicpg1252 \\ uc1 \\ htmautsp \\ deff0 {\\ fonttbl {\\ f0 \\ fcharset0 Times New Roman;}} {\\ colortbl \\ red0 \\ green0 \\ blue0; \\ red255 \\ green255 \\ blue255; \\ red124 \\ green252 \\ blue0;} \\ loch \\ hich \\ dbch \\ pard \\ plain \\ ltrpar \\ itap0 {\\ lang1033 \\ fs18 \\ f0 \\ cf0 \\ cf0 \\ ql {\\ f0 {\\ ltrch這是} {\\ highlight2 \\ ltrch} {\\ ltrch啞巴。 } \\ li0 \\ ri0 \\ sa0 \\ sb0 \\ fi0 \\ ql \\ par}}}

那么如何處理富文本,以便可以使用Xceed的DocX庫將其插入到Word文件中?

到目前為止,我已經嘗試按照此處所述使用Clibboard 但是我不確定是否要正確復制文本或如何應用粘貼的內容。 我也在嘗試使用DocX的InsertParagraph但這看起來像是在文檔中添加了一個段落(而且我還沒有解決格式問題)。 任何幫助將非常感激。

如果要用值替換標簽,建議您為docx使用“模板引擎”。 我碰巧自己創建了一個: https : //github.com/open-xml-templating/docxtemplater

使用開源版本時,如果您想用簡單的文本替換標簽或執行循環/條件(大多數其他高級功能(例如HTML插入)是付費擴展),則可以很好地解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM