Openxml中WordprocessingDocument类的ThumbnailPart属性用于保存文档缩略图,其类型为ThumbnailPart,支持添加和读取缩略图。
通常Word文档没有缩略图。在文件夹中以平铺、内容或各类尺寸图标形式查看Word文档时,显示的是Word软件的默认图标。ThumbnailPart类支持调用FeedData函数添加Jpg、Emf、Wmf格式的图片作为文档缩略图。下面示例代码将七龙珠图片添加为缩略图,运行效果如下图所示:
csharp
string jpgPath = @"...\dragonball.jpg";
using (WordprocessingDocument document = WordprocessingDocument.Open(txtFilePath.Text, true))
{
ThumbnailPart tPart = document.ThumbnailPart;
if(tPart == null)
{
tPart = document.AddThumbnailPart(ThumbnailPartType.Jpeg);
}
using (FileStream newThumbnailStream = new FileStream(jpgPath, FileMode.Open))
{
tPart.FeedData(newThumbnailStream);
}
}


如果Word文档包含缩略图,则ThumbnailPart类的ContentType属性保存图片格式,如"image/jpeg",通过调用GetStream函数获取图片数据流,然后可以将图片保存到本地。示例代码及运行效果如下图所示:
csharp
string jpgPath = @"thumbnailPart.jpg";
using (WordprocessingDocument document = WordprocessingDocument.Open(txtFilePath.Text, false))
{
ThumbnailPart tPart = document.ThumbnailPart;
if (tPart == null)
{
MessageBox.Show("Word文档不包含缩略图");
return;
}
using (Stream thumbnailStream = tPart.GetStream())
{
using (FileStream fileStream = new FileStream(jpgPath,
FileMode.Create))
{
thumbnailStream.CopyTo(fileStream);
}
}
}

参考文献
1\]https://github.com/dotnet/Open-XML-SDK \[2\]https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk \[3\]https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1 \[4\]https://blog.csdn.net/i042416/article/details/126228816