[英]Is it possible to insert pieces of RTF text into a Word document (.docx) using OpenXml?
我正在开发一个.NET C#应用程序,该应用程序需要创建Word文档,插入存储在数据库中的RTF文本片段。 有谁知道这是可能的,以及使用OpenXml(或COM互操作)如何完成?
我不需要将一个完整的RTF文件转换为Word文档。 我需要以编程方式创建Word文档,并使用C#将RTF文本片段添加到Word文档的不同位置。
您可以通过altChunk锚导入外部内容。 altChunk锚点在Word文档中定义一个位置,以插入外部内容,例如RTF,HTML,XML等。
有关altChunk锚点的更多信息,请参考以下MSDN文章。
以下代码显示了如何使用OpenXML SDK将RTF块插入Word文档中:
AlternativeFormatImportPart
块。 MemoryStream
)。 AlternativeFormatImportPart
相同的ID创建一个AltChunk
。 。
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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.