2012-11-08 9 views
5

Ich muss Bilder aus Corporate PDF-Dateien extrahieren, die technische Zeichnungen enthalten. Die PDF-Dateien entsprechen einem PDF/A-Format.Bilder extrahiert aus PDF sind horizontal fragmentiert

Ich verwende einen Ansatz mit Apache's pdfbox, die ich aus dieser question gelernt habe.

Mein Problem ist jetzt, dass für einige Dateien die extrahierten Bilder horizontal in bis zu 3 Schichten fragmentiert sind. Da ich sie nicht manuell zusammenfügen möchte, wäre ich froh, wenn jemand einen Rat hätte.

EDIT - ANSATZ 1

Eine Lösung, die ich dachte, war Ordner pro Bild erstellt, dann die Fragmente alle in den entsprechenden Ordnern abgelegt, über die Ordner durchlaufen und den Inhalt verschmelzen. Das würde einige Sortierarbeiten auf meiner Seite erfordern, aber ich denke, es könnte funktionieren.

String key = (String) imageIter.next(); 

kehrt Im < Nummer>, Nummer bezeichnet die Reihenfolge der Bilder pro Seite. So sind die Fragmente in den Ordnern wäre bereits in einer Reihenfolge und das Verschmelzen Programm könnte leicht herausfinden, welcher Teil oben ist, usw.

EDIT - ANSATZ 2

Ein weiterer Ansatz, den ich denken konnte: Die Fragmente haben ihre Reihenfolge in ihren Dateinamen in diesem Muster pdfname_page_[\d]_Im[\d][\.][tiff|png]. So könnte ich die Bilder sortieren, die dieser Reihenfolge entsprechen, und dann alle Fragmente in einer Reihe zusammenfassen, die die gleiche Breite haben. Ich habe diese Fragmente überprüft und es scheint, dass fast alle Bilder unterschiedliche Dimensionen haben.

Was sagen Sie zu diesen Ansätzen?

EDIT3

Da wir aus der Zeit lief, mein Kollege und ich hatten die Bilder von Hand zu extrahieren. Ich bin immer noch interessiert, aber ich muss dieses Problem in meiner Freizeit lösen.

+0

Sollte ich eigene Lösungsvorschläge als Antwort/Kommentar hinzufügen? Oder ist es in Ordnung, sie zur Frage hinzuzufügen? – mike

Antwort

2

Die extrahierten Bilder sind in 3 Slices fragmentiert, weil die eingebetteten Bilder auch sind. Dies hat die PDF-Generierungssoftware höchstwahrscheinlich automatisch gemacht. (Es ist sehr selten, dass ein InDesign-Dokumentendesigner das absichtlich gemacht hat.)

Daher gibt es keine zuverlässige Methode, mit der Sie die Fragmente automatisch zusammenheften könnten.

Was können Sie versuchen, das ist - aber nur, wenn Sie eine Version von Adobe Acrobat zur Verfügung:

  • Verwenden Sie die integrierte in "PDF-Optimierung" (Pro?).
  • In der "Delete Objects" Panel, aktivieren Sie die "Bildfragmente erkennen und fusionieren" Option.

(Sorry, über Menü und UI-Einträge I aus dem Speicher eines deutschen Acrobat Pro Installation übersetzt, so dass sie sicher nicht genau eine englische Benutzeroberfläche übereinstimmen.)

Jedoch ist dieses Verfahren wird, in Meine Erfahrung funktioniert nicht sehr zuverlässig. In den meisten Fällen von Bildfragmentierung in PDFs wird es überhaupt nicht funktionieren. :-(

+1

Als Randnotiz habe ich dieses Problem mit Bildern in PDF in PDF gedruckt Aus unbekannten Gründen teilt die interne Druckarchitektur in Windows einige Bilder in Teile auf, wenn sie an den Druckertreiber gesendet werden. – yms

+0

Funktioniert Ihr Ansatz automatisch pro PDF-Dokument, pro Seite oder sogar pro Bild? – mike

+0

@Mike: Das * 'Bild erkennen Fragmente und fusionieren sie * in Acrobat (Pro?) funktioniert nur per PDF-Dokument (und wie gesagt, funktioniert nicht zuverlässig). –

Verwandte Themen