2010-12-15 22 views
5

Okuma: karakter Bir dosyayı açtığınızda aynı olmadığını,C++ bir PDF dosyasının içeriğini okumak için aşağıdaki kodu kullanıyorum bir PDF dosyası

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); 

sorundur Metin düzeltici. Örneğin, bu dosya files.flashfan.ch/file.png bu çıktıda

sonuç için : files.flashfan.ch/output.png Ben karakter olan böylece, dosyayı okuyabilir nasıl

editörde tam olarak aynı mı? PDF dosyalarını ayrıştırmak istiyorum ancak orijinal karakterleri olmadan bunu yapamam. Ben bu dosyayla kodu testet ettik (onun değil bir PDF dosyası, birinin sadece bir parçası, bu nedenle bunu gösteremez): Yardımlarınız için

PDF Head.pdf

Teşekkür!

+0

@ user461872: PDF'yi ayrıştırmak bir şeydir ve PDF'yi okumak başka bir şeydir. Sonuncusu benim düşüncemde. Öyleyse bana sadece okuyarak ne yapmak istediğini söyle? – Nawaz

+0

Belgedeki PDF nesnelerinin bir listesini almak istiyorum. Sonra benim özellikleri uygun bazı nesneleri okuyun. Ama bunu nasıl yapacağımı biliyorum, sadece programın yanlış karakterleri dosyadan okuduğunu düşündüm. Yani dosyayı ayrıştırmak imkansız olurdu. –

cevap

4

Dosyayı okuma biçiminde herhangi bir hata görmüyorum (çıktıyı bir dosyaya yeniden yönlendirdiğimde, kod Linux dosyamda çalışır). Muhtemelen sorun, konsol ile karışıklık yapan kontrol karakterleridir. Bir dosyaya çıkış yapmayı deneyin ve girişle karşılaştırın.

+0

Haklıymışsınız! Dosyadaki bazı işaretler konsoldaki çıkışı değiştirdi. Okunan metin doğru, ancak yanlış görüntülendi. –

0

İkili bir dosya, bir metin düzenleyicide açmak hiç mantıklı değil.

(XVI32 gibi) yerine bir onaltılık düzenleyici kullanın ... ve bunun gibi baskı yapın:

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

Veya sadece HexEditor eklentisini Notepad ++ ile kullanın. HxD ikinci sırada yer alır. –

-1

bir onaltılık editörü kullanmayı deneyin. Bazen notepad gibi programlar normal kodu okuyamaz, bu yüzden bir hex editörü ile görüntülemeniz gerekir. Şahsen ghex'i öneriyorum.

İlgili konular