2010-12-15 20 views
5

पढ़ना मैं एक पीडीएफ फाइल की सामग्री को पढ़ने के लिए निम्न कोड का उपयोग कर रहा:सी ++ एक पीडीएफ फाइल

string document; 
FILE * f; 
f = fopen (path , "rb"); 
unsigned char buffer[1024]; 
while(!feof(f)){ 
    int bytes = fread(buffer,1,1024,f); 
    for(int i = 0; i < bytes; i++){ 
     document += buffer[i]; 
     cout << buffer[i]; 
    } 
} 
fclose (f); 

समस्या है, कि वर्ण जब मैं एक में फ़ाइल खोलने के समान नहीं होते पाठ संपादक। उदाहरण इस फाइल files.flashfan.ch/file.png इस उत्पादन में

परिणामों के लिए: files.flashfan.ch/output.png

मैं फ़ाइल कैसे पढ़ सकते हैं, ताकि वर्ण हैं बिल्कुल संपादक के समान ही? मैं पीडीएफ फाइलों का विश्लेषण करना चाहता हूं, लेकिन मूल वर्णों के बिना मैं इसे नहीं कर सकता। मैं इस फ़ाइल के साथ कोड testet है (इसकी नहीं एक पीडीएफ फाइल, एक का सिर्फ एक हिस्सा है, तो आप इसे प्रदर्शित नहीं कर सकता):

PDF Head.pdf

आपकी मदद के लिए धन्यवाद!

+0

@ user461872: पार्सिंग पीडीएफ एक बात है, और पीडीएफ पढ़ने एक और है। उत्तरार्द्ध मेरी राय में, कोई उपयोग नहीं है। तो मुझे बताओ कि आप बस पढ़कर क्या करना चाहते हैं? – Nawaz

+0

मैं दस्तावेज़ में पीडीएफ ऑब्जेक्ट्स की एक सूची प्राप्त करना चाहता हूं। फिर कुछ ऑब्जेक्ट्स पढ़ें जो मेरी चश्मा फिट बैठती हैं। लेकिन मुझे पता है कि यह कैसे करना है, मैंने सोचा कि कार्यक्रम फ़ाइल से गलत वर्ण पढ़ता है। तो फाइल को पार्स करना असंभव होगा। –

उत्तर

4

मुझे फ़ाइल पढ़ने के तरीके में कोई त्रुटि दिखाई नहीं देती है (जब मैं आउटपुट को फ़ाइल में रीडायरेक्ट करता हूं तो कोड वास्तव में मेरे लिनक्स बॉक्स पर काम करता है)। शायद समस्या नियंत्रण वर्णों में है जो कंसोल के साथ गड़बड़ कर रही है। फ़ाइल में आउटपुट करने और इनपुट के साथ तुलना करने का प्रयास करें।

+0

आप सही थे! फ़ाइल में कुछ संकेत कंसोल में आउटपुट में हेरफेर करते थे। पढ़ा गया पाठ सही है, लेकिन यह गलत दिखाया गया था। –

0

यह एक बाइनरी फ़ाइल है, इसे टेक्स्ट एडिटर में खोलने का कोई मतलब नहीं है। बजाय एक हेक्स संपादक का उपयोग करें (जैसे XVI32)

... और इस तरह मुद्रण कार्य करें:

fprintf("%#x ", buffer[i]); 
+0

या नोटपैड ++ के साथ हेक्स एडिटर प्लगइन का उपयोग करें। एचएक्सडी दूसरे स्थान पर है। –

-1

एक हेक्स संपादक का उपयोग कर प्रयास करें। कभी-कभी नोटपैड जैसे प्रोग्राम सामान्य कोड नहीं पढ़ सकते हैं, इसलिए आपको इसे हेक्स संपादक के साथ देखना होगा। मैं व्यक्तिगत रूप से घी की सिफारिश करता हूं।

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