2011-02-02 7 views
5

प्रोजेक्ट आवश्यकता के अनुसार हमें शब्द दस्तावेज़ से छवियों को बिटमैप ऑब्जेक्ट में कनवर्ट करने की आवश्यकता है। इसे प्राप्त करने के लिए हमने माइक्रोसॉफ्ट.ऑफिस.इंटरोप। डॉर्ड डीएल को बिटमैप में इनलाइनशिप ऑब्जेक्ट को कन्वर्ट करने का प्रयास किया। हालांकि सफलता पाने में असमर्थ, क्लिपबोर्ड ऑब्जेक्ट को शून्य के रूप में प्राप्त करना। कृपया वह कोड ढूंढें जिसे हमने नीचे बताया था;शब्द दस्तावेज़ से छवियों को बिटमैप ऑब्जेक्ट में कनवर्ट करना

using System.Drawing; 
using Microsoft.Office.Interop.Word; 
namespace WordApp1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Application wordApp = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); 
      Documents documents = wordApp.Documents; 

      Document d = null; 
      foreach (Document document in documents) 
      { 
       if (document.ActiveWindow.Caption.Contains("{Word document name}")) 
       { 
       d = document; 
       } 
      } 

      foreach (InlineShape shape in d.InlineShapes) 
      { 
       shape.Range.Select(); 
       d.ActiveWindow.Selection.Range.CopyAsPicture(); 
       System.Windows.Forms.IDataObject dobj = System.Windows.Forms.Clipboard.GetDataObject(); //Getting clipboard object as null 
       if(dobj.GetDataPresent(typeof(System.Drawing.Bitmap))) 
       { 
       Bitmap bmp; 
       System.IO.MemoryStream ms = new System.IO.MemoryStream(); 
       bmp = (Bitmap)dobj.GetData(typeof(System.Drawing.Bitmap)); 
       } 
      } 
     }   
    } 
} 

क्या किसी ने शब्द छवियों को बिटमैप में परिवर्तित करने पर काम किया है? यदि आप हमें दस्तावेज़ दस्तावेज़ से बिटमैप ऑब्जेक्ट में कनवर्ट करने के साथ आगे बढ़ने के तरीके के बारे में मार्गदर्शन कर सकते हैं तो यह बहुत मददगार होगा।

उत्तर

0

इसे आजमाएं।

foreach (InlineShape shape in d.InlineShapes)    
{ 
    if (shape != null) 
    { 
     shape.Range.Select(); 
     d.ActiveWindow.Selection.Copy(); 
     Bitmap bitmap = new Bitmap(Clipboard.GetImage()); 
    } 
} 
0

वहाँ दो क्लिपबोर्ड है।

आमतौर पर हम System.Windows.Forms.Clipboard का उपयोग करेंगे, लेकिन यह बेकार है।

इसके बजाय System.Windows.Clipboard का उपयोग करें, बस अपने संदर्भ में प्रेजेंटेशनकोर जोड़ें।

(मेरे मामले में, सी: \ प्रोग्राम फ़ाइलें \ संदर्भ असेंबली \ Microsoft \ Framework.NETFramework \ v4.0 \ प्रोफ़ाइल \ क्लाइंट \ PresentationCore.dll)

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^