学习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

相关推荐
qq_4663024512 小时前
如何在word中添加代码
word
一棵星16 小时前
记一次 Word 转 PDF 功能故障排查与修复
pdf·word
拆房老料2 天前
ONLYOFFICE AI Agent 深度解析:在线 Office 正从编辑器走向智能工作平台
人工智能·中间件·编辑器·word·开源软件
186******205313 天前
PDF 转 Word 高效办公实战指南
pdf·word
patrickpdx4 天前
Word批量修改指定字符的字体
word·word2016
asdzx675 天前
使用 Spire.WordJS 在 React 中实现在线 Word 文档编辑
前端·react.js·word
速易达网络5 天前
在线web文本图片绘图系统
word
zavoryn6 天前
Word 图片如何进入 RAG:Apache POI、MinIO 与 URL 映射
word·agent·rag
AI导出鸭PC端6 天前
预览即导出:告别AI文档格式崩塌,网页预览效果1:1落地Word
人工智能·pdf·word·流程图·豆包·ai导出鸭
asdzx676 天前
使用 Python 精准操控 Word 字体:获取与替换方案
python·c#·word