[英]C# Retrieve FormFields from Word Document and Insert into Text file
[英]How to insert text from RTF to Word Document in c#
我正在使用winservice创建Word文档。
我唯一的问题是将rtf粘贴到单词选择中。
我有以下代码:
private static void PasteRtf(object bookmarkName,
OFFICE.Application wordApplication,
Document wordDocument, string rtfText, bool winservice)
{
if(bookmarkName == null ||
wordApplication == null ||
wordDocument == null) return;
if (!winservice)
{
Clipboard.Clear();
Clipboard.SetText(rtfText, TextDataFormat.Rtf);
IDataObject formatedText = Clipboard.GetDataObject();
if (formatedText != null)
{
wordDocument.Bookmarks[bookmarkName].Range.Select();
Selection sel = wordApplication.Selection;
sel.Paste();
}
Clipboard.Clear();
}
else
{
????
}
}
您有没有在不使用剪贴板的情况下怎么做的想法?
解:
wordDocument.Bookmarks[bookmarkName].Range.Select();
Selection sel = wordApplication.Selection;
wf.RichTextBox tb = new wf.RichTextBox();
tb.Rtf = rtfText;
string fileName = Path.Combine(UserInfo.User.TempPath,
Guid.NewGuid() + ".rtf");
tb.SaveFile(fileName, wf.RichTextBoxStreamType.RichText);
object ConfirmConversions = false;
object Link = false;
object Attachment = false;
object lMissing = System.Reflection.Missing.Value;
sel.InsertFile(fileName, ref lMissing, ref ConfirmConversions, ref Link, ref Attachment);
File.Delete(fileName);
如果您的RTF文本(或Word或任何其他兼容格式)位于文件中,则可以使用Range.InsertFile或Bookmark.InsertFile方法:
string FileName = "C:\\Sales.docx";
object ConfirmConversions = false;
object Link = false;
object Attachment = false;
bookmark1.InsertFile(FileName, ref missing, ref ConfirmConversions, ref Link, ref Attachment);
Word需要一个转换器才能将RTF集成到文档中。 转换器仅在以下情况下运行
没有将“ RTF”(或HTML)“流式传输”到Word文档中的选项。
唯一的其他可能性是您首先将RTF转换为OOPC平面文件格式的有效WordOpenXML。 可以使用Word的Range.InsertXml方法将其插入文档。 可能有第三方工具可以为您完成此任务。 或者,您需要编写自己的RTF-> WordOpenXML转换器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.