C# 获取 Word 文档中的图片:无 SaveAs 方法的解决方案
如果 Word 文档中的图片没有使用 'saveas' 方法保存为独立的文件,那么可以尝试通过 'Clipboard' 对象将图片复制到剪贴板中,然后将其保存为文件。
以下是一个示例代码,可以将 Word 文档中的图片保存到指定路径:
using System;
using System.IO;
using System.Windows.Forms;
namespace WordImageExtractor
{
class Program
{
[STAThread]
static void Main(string[] args)
{
// 打开 Word 文档
var openFileDialog = new OpenFileDialog();
openFileDialog.Filter = 'Word 文档|*.docx;*.doc';
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
var wordPath = openFileDialog.FileName;
var wordApplication = new Microsoft.Office.Interop.Word.Application();
var wordDocument = wordApplication.Documents.Open(wordPath);
// 获取所有 InlineShape 对象(包含图片)
foreach (Microsoft.Office.Interop.Word.InlineShape shape in wordDocument.InlineShapes)
{
// 复制图片到剪贴板
shape.Select();
wordApplication.Selection.Copy();
// 从剪贴板中获取图片数据
var image = Clipboard.GetImage();
// 保存图片到指定路径
var imagePath = Path.Combine('C:\Images', $'image{DateTime.Now.Ticks}.png');
image.Save(imagePath);
Console.WriteLine($'图片已保存到:{imagePath}');
}
// 关闭 Word 文档和应用程序
wordDocument.Close();
wordApplication.Quit();
}
Console.WriteLine('按任意键退出...');
Console.ReadKey();
}
}
}
请注意,此示例代码使用了 'Microsoft.Office.Interop.Word' 库,需要在项目中引用该库。
原文地址: https://www.cveoy.top/t/topic/hP05 著作权归作者所有。请勿转载和采集!