2010-03-08 12 views
6

का उपयोग कैसे करें IFilter का उपयोग करके पीडीएफ फाइलों से टेक्स्ट निकालने का प्रयास कर रहा हूं।एक विशिष्ट पीडीएफ IFilter

एडोब पीडीएफ आईफिल्टर जो एडोब रीडर के साथ वितरित किया गया है, बहुत पीडीएफ दस्तावेज़ों के लिए HRESULT E_FAIL संदेश लौटा रहा है।

FoxIt PDF IFilter परीक्षण के लिए उपयोग किए जा रहे लगभग सभी पीडीएफ पर खूबसूरती से काम करता है।

समस्या यह है कि जब भी एडोब अपडेटर चलता है, तो यह शानदार फॉक्सआईट आईफिल्टर को क्रैपी एडोब आईफिल्टर के साथ बदल देता है।

मैं पीडीएफ फाइलों के लिए पंजीकृत IFilter प्राप्त करने के लिए LoadIFilter विधि का उपयोग कर रहा हूं। क्या Win32 API को एडोब IFilter के बजाय फॉक्सआईट IFilter लोड करने के लिए मजबूर करने का कोई तरीका है?

नोट: इस प्रश्न के बारे में determining which IFilters are installed संबंधित प्रश्न पूछता है - लेकिन समान नहीं - प्रश्न।

उत्तर

3

आईफिल्टर विंडोज के साथ एक COM ऑब्जेक्ट के रूप में पंजीकृत प्रतीत होता है, इसलिए आप COM का उपयोग करके इसका एक उदाहरण बनाने में सक्षम होना चाहिए।

http://msdn.microsoft.com/en-us/library/ms692565 से: DLL की संरचना है कि यह एक IFilter और एक IClassFactory है

आप (CLSID दिया)

बाहर की जांच http://msdn.microsoft.com/en-us/library/ms684007 http://msdn.microsoft.com/en-us/library/ms680760

IClassFactory का दृष्टांत में सक्षम होना चाहिए
+0

धन्यवाद निगेल, मुझे लगता है कि एक कोशिश दे देंगे। – dthrasher

0

ऊपर जिस तरह से बगल में, आप बस फ़ाइल प्रकार आप में रुचि रखते हैं के लिए प्रणाली में इस्तेमाल किया IFilter DLL की जांच कर सकता।

,210

आप Foxit DLL के बजाय एडोब DLL मिल जाए, कुंजी अपने फ़ाइल प्रकार की PersistentHandler की बात कर रहा है के लिए InprocServer32 प्रविष्टि बदल जाते हैं। यह विशेष अधिकार, प्रणाली आप उपयोग पर निर्भर करता है की आवश्यकता हो सकती। फिर IFilter उपयोग शुरू करें।

बस कैसे IFilter DLLs चयन किया जाता है का विवरण पर एक नज़र डालें:

http://msdn.microsoft.com/en-us/library/ms692488

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