2017-12-31 113 views
-1

Die PDF enthält Daten Zeile für Zeile getrennt und es gibt eine Tabelle nach einer Zeile, die Überschrift und den entsprechenden Wert darunter enthält, kann ich nicht in einer geordneten Weise, aber Stattdessen erhalte ich die komplette Spaltenüberschrift nacheinander als Text. Ich bin in der Lage, die Daten zu erhalten, die Zeile für Zeile vorhanden sind, um die Überschrift und den entsprechenden Wert zuzuordnen, ich kann das nicht für die Tabelle tun.So extrahieren Sie entsprechende Spaltendaten aus pdf

fp = open(my_file, "rb") 
parser = PDFParser(fp) 
document = PDFDocument(parser) 
if not document.is_extractable: 
    raise PDFTextExtractionNotAllowed 

rsrcmgr = PDFResourceManager() 
laparams = LAParams() 
laparams.line_margin = 12 
device = PDFPageAggregator(rsrcmgr, laparams=laparams) 
interpreter = PDFPageInterpreter(rsrcmgr, device) 
for page in PDFPage.create_pages(document): 
    interpreter.process_page(page) 
    layout = device.get_result() 
    for lt_obj in layout: 
     if isinstance(lt_obj,LTTextBox): 
      extracted_text += lt_obj.get_text() 

print extracted_text 

Antwort

1

PDFs sind nicht in einer bestimmten Reihenfolge angeordnet (obwohl die Reihenfolge normalerweise nicht völlig zufällig ist).

Sie müssen die Header finden und dann den Inhalt der Zeilen von der X-, Y-Position ableiten, wenn der Text.

+0

Wie mache ich das, es gibt keine gut definierte Dokumentation für pdfminer. –

Verwandte Themen