学习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);
        }
    }
}

参考文献

1https://github.com/dotnet/Open-XML-SDK

2https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk

3https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1

4https://blog.csdn.net/i042416/article/details/126228816

相关推荐
江畔柳前堤1 小时前
XZ09_Word和MD格式转换
开发语言·数据库·人工智能·python·深度学习·word
yurenpai(27届找实习中)2 小时前
Spring AI 实战:从零实现 AI 对话的记忆与历史记录管理(附源码级解析)
java·spring·ai·prompt·word
庖丁AI4 小时前
文档比对工具怎么选?Word、PDF、扫描件差异检测思路
pdf·word·扫描件·文档比对
tedcloud12312 小时前
DeepSeek-TUI部署教程:打造CLI AI助手环境
服务器·人工智能·word·excel·dreamweaver
aihuangwu19 小时前
AI导出鸭|ChatGPT与Gemini生成Word文档技术实操
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
_oP_i1 天前
105、word 出现 {TOCO“1-2“HZ}
开发语言·c#·word
gc_22992 天前
学习C#调用OpenXml操作word文档的基本用法(39:学习表格类-1)
c#·word·表格·table·openxml
gc_22993 天前
学习C#调用OpenXml操作word文档的基本用法(38:学习特殊符号类-2)
word·openxml·特殊符号
DS随心转APP3 天前
AI 一键导出 Word 与 Excel 实战应用指南
人工智能·ai·word·excel·deepseek·ai导出鸭
开开心心就好3 天前
小白友好的程序联网封锁实用工具
windows·eureka·计算机外设·rabbitmq·word·excel·csdn开发云