我正在用C#编写Word文档的编辑器。我正在使用RichTextBox创建具有格式的文本,并添加一片XDocumento docx。
有人可以告诉我你是否有任何转换方式?包括格式......
这个例子已经更复杂了:
RichTextBox格式:
{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1046{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n{\\colortbl ;\\red255\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17 A \\b Nissan \\b0 est\\'e1 \\i mesmo \\i0 disposta a \\ul fincar \\ulnone seus p\\'e9s em solo \\cf1 brasileiro\\cf0 . \\par\r\n}\r\n
,OpenXml文档格式:(默认为docx)
<w:p w:rsidR = "00685F88" w:rsidRDefault = "00685F88">
<w:pPr>
<w:widowControl w:val = "0"/>
<w:autoSpaceDE w:val = "0"/>
<w:autoSpaceDN w:val = "0"/>
<w:adjustRightInd w:val = "0"/>
<w:spacing
w:after = "0pt"
w:line = "12pt"
w:lineRule = "auto"/>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t xml:space = "preserve">A</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:b/>
<w:bCs/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t xml:space = "preserve">Nissan</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t xml:space = "preserve">está</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:i/>
<w:iCs/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t xml:space = "preserve">mesmo</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t xml:space = "preserve">disposta a</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
<w:u w:val = "single"/>
</w:rPr>
<w:t xml:space = "preserve">fincar</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t xml:space = "preserve">seus pés em solo</w:t>
</w:r>
<w:r>
<w:rPr>`enter code here`
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:color w:val = "FF0000"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t>brasileiro</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii = "Microsoft Sans Serif"
w:hAnsi = "Microsoft Sans Serif"
w:cs = "Microsoft Sans Serif"/>
<w:sz w:val = "17"/>
<w:szCs w:val = "17"/>
</w:rPr>
<w:t xml:space = "preserve">.</w:t>
</w:r>
</w:p>
和相反的情况。
不想手动完成。
在Micrsoft Office Word中,您可以将RTF格式(在richtextbox中使用)转换为DOCX。但我无法在Wird库中找到解决方案。
感谢。
答案 0 :(得分:0)
您可以使用Regex。此模式将匹配第一个示例{Text.*?"(.*?)"}
,此处为Regex 101以证明它。那么C#
就是:
var val = Regex.Replace(input, pattern, "<w:p><w:r><w:t>$0</w:t></w:r></w:p>");
答案 1 :(得分:0)
在引用RTFTextBox时,您应该能够使用.Text选项。例如,mytextbox.rtf vs mytextbox.text。至少这是它在Visual Studio 2010中的工作方式。