学习C#调用OpenXml操作word文档的基本用法(11:操作文档缩略图)

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

相关推荐
骆驼爱记录13 小时前
Word样式检查器使用指南
自动化·word·excel·wps·新人首发
缺点内向2 天前
C#: 告别繁琐!轻松移除Word文档中的文本与图片水印
c#·自动化·word·.net
徐小夕@趣谈前端2 天前
拒绝重复造轮子?我们偏偏花365天,用Vue3写了款AI协同的Word编辑器
人工智能·编辑器·word
kingwebo'sZone3 天前
C#使用Aspose.Words把 word转成图片
前端·c#·word
科技D人生3 天前
Vue.js 学习总结(20)—— Vue-Office 实战:word、pdf、excel、ppt 多种文档的在线预览
vue.js·word·vue-pdf·stylesheet·docx-preview·vue-office
weixin_416660073 天前
技术分析:豆包生成带公式文案导出Word乱码的底层机理
人工智能·word·豆包
骆驼爱记录4 天前
Word样式库不显示的8种修复方法
word·wps·新人首发
苍煜4 天前
超简单 poi-tl 学习博客:从0到1掌握Word生成(无需模板+模板填充)
学习·word
请为小H留灯4 天前
Word论文 封面、目录、页码设置步骤!(2026详细版教程)
毕业设计·word·论文格式
星尘库4 天前
在word中怎么把段落回车替换成空 删除空行
word