我正在开发一个.NET C#应用程序,它需要创建一个Word文档,插入存储在数据库中的RTF文本片段。是否有人知道这是否可能,以及如何使用OpenXml (或COM互操作)完成这一工作?
我不需要把一个完整的RTF文件转换成Word文档。我需要通过编程创建一个Word文档,并使用C#在word文档中的不同位置添加RTF文本。
发布于 2013-02-13 19:25:15
您可以通过altChunk锚点导入外部内容。altChunk锚点定义了在word文档中插入外部内容的位置,例如RTF、HTML、.
有关altChunk锚点的更多信息,请参阅下面的MSDN文章。
下面的代码演示如何使用OpenXML SDK将RTF块插入到word文档中:
AlternativeFormatImportPart块。MemoryStream )。AltChunk的ID创建AlternativeFormatImportPart。。
static void Main(string[] args)
{
using (WordprocessingDocument doc = WordprocessingDocument.Open(@"test.docx", true))
{
string altChunkId = "AltChunkId5";
MainDocumentPart mainDocPart = doc.MainDocumentPart;
AlternativeFormatImportPart chunk = mainDocPart.AddAlternativeFormatImportPart(
AlternativeFormatImportPartType.Rtf, altChunkId);
string rtfEncodedString = @"{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard This is some {\b bold} text.\par}";
using (MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(val)))
{
chunk.FeedData(ms);
}
AltChunk altChunk = new AltChunk();
altChunk.Id = altChunkId;
mainDocPart.Document.Body.InsertAfter(
altChunk, mainDocPart.Document.Body.Elements<Paragraph>().Last());
mainDocPart.Document.Save();
}
}https://stackoverflow.com/questions/14711659
复制相似问题