2016-07-11 9 views
0

Ich versuche, Bilder zu extrahieren, die in einem PDF sind. Die Datei, mit der ich arbeite, ist 2+ Seiten. Seite 1 ist Text und Seiten 2-n sind Bilder (eins pro Seite, oder es kann ein einzelnes Bild sein, das mehrere Seiten umfasst; ich habe keine Kontrolle über den Ursprung).Python pdfminer extrahieren Bild erzeugt mehrere Bilder pro Seite (sollte einzelnes Bild sein)

Ich kann den Text von Seite 1 analysieren, aber wenn ich versuche, die Bilder zu bekommen, bekomme ich 3 Bilder pro Bildseite. Ich kann den Bildtyp nicht bestimmen, wodurch das Speichern erschwert wird. Zusätzlich versucht jede Seite 3 Bilder speichern als ein einzelnes img kein Ergebnis liefert (wie in nicht über Finder auf OSX geöffnet werden kann)

Probe:

fp = open('the_file.pdf', 'rb') 
parser = PDFParser(fp) 
document = PDFDocument(parser) 
rsrcmgr = PDFResourceManager() 
laparams = LAParams() 
device = PDFPageAggregator(rsrcmgr, laparams=laparams) 
interpreter = PDFPageInterpreter(rsrcmgr, device) 


for page in PDFPage.create_pages(document): 
    interpreter.process_page(page) 
    pdf_item = device.get_result() 
    for thing in pdf_item: 
     if isinstance(thing, LTImage): 
      save_image(thing) 
     if isinstance(thing, LTFigure): 
      find_images_in_thing(thing) 


def find_images_in_thing(outer_layout): 
    for thing in outer_layout: 
     if isinstance(thing, LTImage): 
      save_image(thing) 

save_image entweder eine Datei pro Bild in pageNum_imgNum Format schreibt in 'wb' Modus oder ein einzelnes Bild pro Seite in 'a' Modus. Ich habe zahlreiche Dateiendungen ohne Glück versucht.

Ressourcen Ich habe sah in:

http://denis.papathanasiou.org/posts/2010.08.04.post.html (outdatted pdfminer Version) http://nedbatchelder.com/blog/200712/extracting_jpgs_from_pdfs.html

Antwort

0

Es ist eine Weile her, seit diese Frage gestellt wurde, aber ich werde im Interesse der Gemeinschaft beitragen, und möglicherweise zu Ihrem Vorteil :)

Ich habe einen Bildparser namens pdfimages verwendet, verfügbar durch die Poppler PDF Verarbeitung Framework. Es gibt auch mehrere Dateien pro Bild aus; Es scheint ein relativ häufiges Verhalten für PDF-Generatoren zu sein, die Bilder in mehrere Bilder zu "kacheln" oder "zu strippen", die dann beim Scraping zusammengesetzt werden müssen, aber beim Betrachten der PDF-Datei vollständig intakt zu sein scheinen. Die Formate/Dateierweiterungen, die ich durch pdfimages und anderswo gesehen habe, sind: png, tiff, jp2, jpg, ccitt. Hast du all diese ausprobiert?