我試圖將一些數據存儲在數據庫中,並使用Open XML SDK使用它填充Word模板的內容控件。數據包含段落,所以在其中有回車符和換行符。數據以nvarchar
的形式存儲在數據庫中。從數據庫將CR + LF寫入Open XML
當我打開生成的文檔時,CR
+ LF
組合顯示爲帶有框的問號(不確定此字符的名稱)。這實際上是兩個序列背靠背,所以CR
+ LF
CR
+ LF
等於二奇怪的字符:
如果我解壓.docx
,採取自定義XML部分,做一個十六進制轉儲,我可以清楚地見0d0a 0d0a
所以CR
+ LF
在那裏。 Word只是打印它很奇怪。
我試過執行UTF-8編碼在我XmlWriter
的設置,但是這似乎並沒有幫助:
Dim docStream As New MemoryStream
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.Encoding = New UTF8Encoding(False)
Dim docWriter As XmlWriter = XmlTextWriter.Create(docStream, settings)
有誰知道我可以獲取Word將正確地呈現時,這些字符通過Open XML SDK寫入.docx
?
也許有助於理解Word不會保存CR/CRLF組合,而是具有XML構造 - 例如,與 「ABC」,然後換行一個段落,然後在 「高清」 將是更喜歡: ABC 高清 –
正確的。 @bibadia提供了答案。我使用Open XML編輯器的插件來分析發生的事情。您也可以使用您開發的加載項從VS進行調試,並在逐步完成時持續查看xml版本。 –
@bibadia好的,這是有幫助的。我可以運行正則表達式替換數據庫中的字符串來應用正確的標記。但我試圖將這些標籤手動添加到自定義XML部分,Word不能再讀取該文檔。我包含了一些MSDN文章中的'w'命名空間,但這沒有幫助。任何想法,如果這些標籤是不同的自定義XML部分? –