c# – 从word文件中提取图像
发布时间:2020-12-16 00:18:11 所属栏目:百科 来源:网络整理
导读:我一直在尝试以下C#代码从doc文件中提取图像,但它不起作用: object missing = System.Reflection.Missing.Value; Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Doc
我一直在尝试以下C#代码从doc文件中提取图像,但它不起作用:
object missing = System.Reflection.Missing.Value; Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document oDoc = new Microsoft.Office.Interop.Word.Document(); oWord.Visible = false; object str1 = "C:doc.doc"; oDoc = oWord.Documents.Open(ref str1,ref missing,ref missing); if (oDoc.InlineShapes.Count > 0) { for (int j = 0; j < oDoc.InlineShapes.Count; j++) { oWord.ActiveDocument.Select(); oDoc.ActiveWindow.Selection.CopyAsPicture(); IDataObject data = Clipboard.GetDataObject(); if (data.GetDataPresent(typeof(System.Drawing.Bitmap))) { object bm = data.GetData(DataFormats.Bitmap); Bitmap bmp; bmp = (Bitmap)data.GetData(typeof(System.Drawing.Bitmap)); bmp.Save("C:test.bmp"); } } 任何人都可以提供从word文件中提取图像的正确代码吗? 解决方法using System; using System.Drawing; using System.IO; using System.Threading; using Page = System.Web.UI.Page; using Microsoft.Office.Interop.Word; using Microsoft.VisualBasic.Devices; public partial class ReadIMG : System.Web.UI.Page { private Application m_word; private int m_i; protected void Page_Load(object sender,EventArgs e) { object missing = Type.Missing; object FileName = Server.MapPath("~/LectureOrig/Word.docx"); object readOnly = true; m_word = new Application(); m_word.Documents.Open(ref FileName,ref readOnly,ref missing); try { for (int i = 1; i <= m_word.ActiveDocument.InlineShapes.Count; i++) { m_i = i; // CopyFromClipboardShape(); Thread thread = new Thread(CopyFromClipbordInlineShape); thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join(); } } finally { object save = false; m_word.Quit(ref save,ref missing); m_word = null; } } protected void CopyFromClipbordInlineShape() { InlineShape inlineShape = m_word.ActiveDocument.InlineShapes[m_i]; inlineShape.Select(); m_word.Selection.Copy(); Computer computer = new Computer(); //Image img = computer.Clipboard.GetImage(); if (computer.Clipboard.GetDataObject() != null) { System.Windows.Forms.IDataObject data = computer.Clipboard.GetDataObject(); if (data.GetDataPresent(System.Windows.Forms.DataFormats.Bitmap)) { Image image = (Image)data.GetData(System.Windows.Forms.DataFormats.Bitmap,true); image.Save(Server.MapPath("~/ImagesGet/image.gif"),System.Drawing.Imaging.ImageFormat.Gif); image.Save(Server.MapPath("~/ImagesGet/image.jpg"),System.Drawing.Imaging.ImageFormat.Jpeg); } else { LabelMessage.Text="The Data In Clipboard is not as image format"; } } else { LabelMessage.Text="The Clipboard was empty"; } } 代码复制自How To Exctract images from Doc (Word) file in C#? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |