在.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 并替换内容。
我使用 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 并替换内容。