2010-10-04 5 views
2

en utilisant le module python pypdf comment lire le fichier pdf ci-dessous http://www.envis-icpe.com/pointcounterpointbook/Hindi_Book.pdfoutil python pypdf

# -*- coding: utf-8 -*- 
from pyPdf import PdfFileWriter, PdfFileReader 
import pyPdf 

def getPDFContent(path): 
    content = "" 
    # Load PDF into pyPDF 
    pdf = pyPdf.PdfFileReader(file(path, "rb")) 
    # Iterate pages 
    for i in range(0, pdf.getNumPages()): 
     # Extract text from page and add to content 
     content += pdf.getPage(i).extractText() + "\n" 
    # Collapse whitespace 
    content = " ".join(content.replace(u"\xa0", " ").strip().split()) 
    return content 

print getPDFContent("/home/tom/Desktop/Hindi_Book.pdf").encode("ascii", "xmlcharrefreplace") 

Les impressions ci-dessus ne binaires

Et comment imprimer le contenu du code ci-dessous

from pyPdf import PdfFileWriter, PdfFileReader 
import sys 
import pyPdf 

from pyPdf import PdfFileWriter, PdfFileReader 

output = PdfFileWriter() 
input1 = PdfFileReader(file("/home/tom/Desktop/Hindi_Book.pdf", "rb")) 

# print the title of document1.pdf 
print "title = %s" % (input1.getDocumentInfo().title) 
+0

Veuillez corriger l'indentation de la dernière ligne dans le premier exemple. – Steven

Répondre

1

Notez que la plupart du "texte" du document pdf auquel vous faites référence n'est pas du tout du texte réel: il s'agit principalement d'images. Le texte réel semble être extrait correctement quand je l'essaye (bien que je doive admettre qu'à part quelques bribes sur la première page et les numéros de page, je ne peux pas le lire ;-)). En ce qui concerne la deuxième question: Je ne suis pas sûr de ce que vous demandez là.

0

Si vous voulez écrire un texte spécifique à partir du fichier PDF, vous pouvez utiliser exctractText() comme ci-dessous:

from path_to_folder import main_path as my_text 
import os 
from PyPDF2 import PdfFileReader 

my_pdf_path = os.path.join(my_text, "my_pdf.pdf") 

with open(os.path.join(my_text, "out_put.txt"), 'w') as out_text: 
    pdf_read = PdfFileReader(open(my_pdf_path, "rb")) 
    out_text.write(pdf_read.getDocumentInfo().title) 
    for pages in range(pdf_read.getNumPages()): 
     text = pdf_read.getPage(pages).extractText() 
     out_text.write(text) 

Dans l'exemple ci-dessus je viens de texte extrait de chaque page et écrit que le texte fichier. Vous pouvez choisir n'importe quoi. Si vous devez prendre des pages spécifiques en format pdf ci-dessous vous pouvez utiliser le code:

from pyPdf import PdfFileWriter, PdfFileReader 
import os, sys 
main_path = "/home/tom/Desktop/" 
output_file = PdfFileWriter() 
input_file = PdfFileReader(file("/home/tom/Desktop/Hindi_Book.pdf", "rb")) 
for page_number in range(input_file.getNumPages()): 
    output_file.addPage(input_file.getPage(page_number)) 

new_file = os.path.join(main_path, "Out_folder/new_pdf.pdf") 
out_fil1 = open(new_file, "wb") 
output_file.write(out_fil1) 
output_file.close() 

Le lien qui vous avez fourni ne fonctionne pas, c'est pourquoi je ne pouvais pas regarder de déposer désolé.