在.docx文件中添加文字和图片

Add text and picture in .docx file

我使用 Office Word 文件(模板),此文件中有重复的默认文本和照片,我必须将其替换为另一张照片和文本

如何在模板中定义特定区域,然后在 C# 中找到这些区域来替换它们?

我认为最好的方法是找出如何操纵单词 xml 结构以包含您想要的数据。

对于模板填充和更改,您可以使用 Microsoft

XML SDK

您也可以在不使用 SDK 的情况下按照此处的手动方法进行操作。 Manual approach。您将添加一个自定义 XML 资源,其中包括您的 changes/ressources 模板。

如果您不需要那么灵活,您可以在 Word 中使用标准内容控件/图片内容控件,然后在 C# 中替换它们 - 这取决于您希望在替换元素时的灵活性。 您可以在此处找到使用图片内容控件的完整示例:Picture content control handling

好的,我终于尝试了这个方法;使用带有内容控制的 Word 文件并使用 XML 文件将数据绑定到它们

为此,我使用以下代码:

string outFile = @"D:\template_created.docx";
string docPath = @"D:\template.docx";
string xmlPath = @"D:\template.xml";

File.Copy(docPath, outFile);

using (WordprocessingDocument doc = WordprocessingDocument.Open(outFile, true))
{
    MainDocumentPart mdp = doc.MainDocumentPart;
    if (mdp.CustomXmlParts != null)
    {
        mdp.DeleteParts<CustomXmlPart>(mdp.CustomXmlParts);
    }
    CustomXmlPart cxp = mdp.AddCustomXmlPart(CustomXmlPartType.CustomXml);

    FileStream fs = null;
    try
    {
        fs = new FileStream(xmlPath, FileMode.Open);

        cxp.FeedData(fs);
        mdp.Document.Save();
    }
    finally
    {
        if (fs != null)
        {
            fs.Dispose();
        }
    }
}

当我 运行 应用程序时,它创建了自定义 XML 文件并将其附加到我的 Word 文件中。打开Word文件没有报错,但是所有的Content Control都没有填好

我最后的方法是在我的 Word 文档中使用具有唯一 ID 的内容控件。然后我可以用 C# 找到那些 id 并替换内容。