2009-08-21 9 views
5

मैं वर्तमान में कुछ MATLAB कोड लिख रहा हूं ताकि मेरी कंपनी के आंतरिक रिपोर्ट डेटाबेस से बातचीत हो सके। अब तक मैं कोड है जो इस तरह दिखता है का उपयोग करके HTML सार पृष्ठ का उपयोग कर सकते हैं:एक पीडीएफ फाइल लाने के लिए MATLAB से जावास्क्रिप्ट कमांड चला रहा है

import com.mathworks.mde.desk.*; 
wb=com.mathworks.mde.webbrowser.WebBrowser.createBrowser; 
wb.setCurrentLocation(ReportURL(8:end)); 
pause(1); 

s={}; 
while isempty(s) 
    s=char(wb.getHtmlText); 
    pause(.1); 
end 
desk=MLDesktop.getInstance; 
desk.removeClient(wb); 

मैं HTML पाठ जो चर s में समाप्त होता है से जानकारी के विभिन्न टुकड़ों बाहर निकाल सकते हैं, फिर भी रिपोर्ट की पीडीएफ है मुझे विश्वास है कि JavaScript कमांड (ऑनक्लिक = "गोटोफुलटेक्स्ट ('', '[रिपोर्ट नंबर]') के माध्यम से पहुंचा है")।

कोई भी विचार है कि मैं इस जावास्क्रिप्ट कमांड को कैसे निष्पादित करता हूं और पीडीएफ फ़ाइल की सामग्री को MATLAB चर में प्राप्त करता हूं?

(MATLAB जावा के शीर्ष पर बैठता है, तो मेरा मानना ​​है कि एक जावा समाधान काम करेगा ...)

उत्तर

4

मुझे लगता है कि आप जावास्क्रिप्ट कि बुलाया जा रहा है पर एक नज़र लेने के लिए और क्या अंतिम अनुरोध दिखाई देगा वेबसर्वर की तरह दिखता है।

आप फ़ायरबग प्लगइन का उपयोग कर फ़ायरफ़ॉक्स में इसे आसानी से कर सकते हैं।

https://addons.mozilla.org/en-US/firefox/addon/1843

एक बार जब आप वास्तविक सर्वर अनुरोध तो पाया है तुम सिर्फ बजाय JavaScript चलाने की कोशिश कर के इस URL पर इस URL या पोस्ट अनुरोध कर सकते हैं।

+2

PJP के केवल समझदार दृष्टिकोण है। आपके पास आंतरिक इंटरफ़ेस के डेवलपर को आंतरिक डेटाबेस में ले जाया जाना चाहिए और शॉट - या कम से कम उन्हें प्रगतिशील वृद्धि के बारे में जानने के लिए कहें ;-) – NickFitz

+0

यह एक बहुत ही आशाजनक मार्ग दिखता है - अब मेरे पास एक यूआरएल है जो मुझे पीडीएफ प्राप्त करता है - मुझे बस इतना करना है कि इसे एक चर में कैसे प्राप्त किया जाए ... फायरबग बल्कि आसान है! –

+0

हां यह बहुत अच्छा है। – pjp

1

एक बार जब आप सही यूआरएल (एक ला the answer from pjp) प्राप्त कर लेते हैं, तो आपकी अगली समस्या "पीडीएफ फाइल की सामग्री को MATLAB चर में प्राप्त करें" है। या नहीं, यह आप "सामग्री" से क्या मतलब है पर निर्भर हो सकता ...


आप पीडीएफ फाइल में कच्चे डेटा प्राप्त करना चाहते हैं संभव है, मुझे नहीं लगता कि वहाँ एक रास्ता है वर्तमान में MATLAB में ऐसा करने के लिए। URLREAD समारोह पहली बात यह है कि मैं एक स्ट्रिंग में किसी URL से सामग्री पढ़ने के लिए के बारे में सोचा था, लेकिन यह दस्तावेज में इस नोट है:

s = urlread('url') एक URL की सामग्री स्ट्रिंग s में पढ़ता है। यदि सर्वर बाइनरी डेटा देता है, s अपठनीय हो जाएगा।

वास्तव में, अगर आप निम्न उदाहरण में एक पीडीएफ पढ़ने की कोशिश, s कुछ पाठ ज्यादातर कचरा के साथ मिश्रित शामिल हैं:

s = urlread('http://samplepdf.com/sample.pdf'); 

आपको लेख प्राप्त करना चाहते हैं पीडीएफ फाइल, आपके पास कुछ विकल्प हैं।

    :

    urlwrite('http://samplepdf.com/sample.pdf','temp.pdf'); 
    

    तो फिर तुम पीडीएफ से पाठ निकालने के लिए The MathWorks File Exchange पर दो प्रस्तुतियाँ में से एक का उपयोग करने के लिए सक्षम होना चाहिए: सबसे पहले, आप एक फाइल करने के लिए URL की सामग्री को बचाने के लिए URLWRITE उपयोग कर सकते हैं

  • Extract text from a PDF documentDimitri Shvorob
  • PDF Reader द्वारा द्वारा Tom Gaudette

आप तो बस दृश्य पीडीएफ करना चाहते , तो आप सिर्फ एडोब एक्रोबेट में खोल सकते हैं OPEN समारोह के साथ:

open('temp.pdf'); 
+0

इस समय मेरी समस्या यह है कि URL को सामग्री तक पहुंचने के लिए प्रमाणीकरण की आवश्यकता होती है, और मैं यह नहीं कर सकता कि इसे urlread के माध्यम से कैसे प्रदान किया जाए। मेरा मानना ​​है कि एक जावा यूआरएल ऑब्जेक्ट का उपयोग कर एक मार्ग हो सकता है। उपरोक्त वेबब्रोसर विधि का उपयोग करके मैं * स्क्रीन पर पीडीएफ दस्तावेज़ देख सकता हूं, जो कि मैं चाहता हूं कि निराशाजनक रूप से नज़दीकी हो। पीडीएफ कार्यों से पाठ उपयोगी लग रहा है ... –

+0

'URLREAD' और 'URLWRITE' फ़ंक्शंस वैकल्पिक पैरामीटर को पास करने की अनुमति देते हैं। आपको यह पता लगाना होगा कि प्रमाणीकरण के लिए पैरामीटर नाम क्या हैं, फिर उन्हें सेल सरणी के रूप में पैरामीटर मानों के साथ पास करें। इस प्रलेखन पृष्ठ पर एक उदाहरण दिखाई देता है: http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f5-136137.html#f5-136158 – gnovice

+0

पीडीएफ फ़ाइल को पाठ में परिवर्तित करने के लिए दिमित्री श्वोरोब का समाधान अच्छी तरह से काम करता है –

1
wb=com.mathworks.mde.webbrowser.WebBrowser.createBrowser; 
wb.executeScript('javascript:alert(''Some code from a link'')'); 
desk=com.mathworks.mde.desk.MLDesktop.getInstance; 
desk.removeClient(wb);