pyPdf für die IndirectObject-Extraktion

8

Nach diesem Beispiel kann ich alle Elemente in einer PDF-Datei auflisten

%Vor%

Jetzt muss ich ein Nicht-Standard-Objekt aus der PDF-Datei extrahieren.

Mein Objekt ist das mit dem Namen MYOBJECT und es ist ein String.

Das Stück, das von dem Python-Skript gedruckt wird, das mich betrifft, ist:

%Vor%

Die pdf-Datei ist das:

%Vor%

Wie kann ich dem Wert 584 folgen, um auf meine Zeichenkette (unter pyPdf natürlich) zu verweisen?

    
Giancarlo 12.01.2009, 18:31
quelle

3 Antworten

8

Jedes Element in pdf.pages ist ein Wörterbuch. Wenn Sie also davon ausgehen, dass es sich auf Seite 1 befindet, sollte pdf.pages[0]['/MYOBJECT'] das gewünschte Element sein.

Sie können versuchen, das einzeln zu drucken oder es mit help und dir an einer Python-Eingabeaufforderung zu platzieren, um mehr darüber zu erfahren, wie Sie die gewünschte Zeichenfolge erhalten können

Bearbeiten:

Nachdem ich eine Kopie der PDF erhalten habe, habe ich das Objekt bei pdf.resolvedObjects[0][558]['/Resources']['/Properties']['/MC0']['/MYOBJECT'] gefunden und der Wert kann über getData ()

abgerufen werden

Die folgende Funktion bietet eine allgemeinere Möglichkeit, dies zu lösen, indem rekursiv nach dem Schlüssel

gesucht wird %Vor%     
Jehiah 14.01.2009, 02:46
quelle
2

Ein IndirectObject bezieht sich auf ein tatsächliches Objekt (es ist wie ein Link oder ein Alias, so dass die Gesamtgröße der PDF reduziert werden kann, wenn derselbe Inhalt an mehreren Stellen erscheint). Die Methode getObject gibt Ihnen das tatsächliche Objekt.

Wenn es sich bei dem Objekt um ein Textobjekt handelt, sollten Sie mit str () oder unicode () für das Objekt die darin enthaltenen Daten abrufen.

Alternativ speichert pyPdf die Objekte im Attribut resolvedObjects. Zum Beispiel eine PDF, die dieses Objekt enthält:

%Vor%

Kann mit diesem gelesen werden:

%Vor%     
Tony Meyer 14.01.2009 09:32
quelle
1

Jehahas Methode ist gut, wenn man überall nach dem Objekt sucht. Meine Vermutung (Blick auf die PDF) ist, dass es immer an der gleichen Stelle (die erste Seite, in der 'MC0' Eigenschaft), und so eine viel einfachere Methode zum Auffinden der Zeichenfolge wäre:

%Vor%     
Tony Meyer 15.01.2009 00:25
quelle

Tags und Links