pdftk dekomprimiert Datenströme nicht

8

Ich habe versucht, mit pdftk zu arbeiten, um Informationen aus komprimierten pdf-Streams zu untersuchen, die von Nitro Reader erstellt wurden, aber pdftk wird die Streams nicht deflationieren. Es erzeugt keine Fehler, aber es scheint nichts zu tun, außer die PDF-Objekte neu zu ordnen. Hier ist ein minimales Beispiel für eine dieser PDFs.

%Vor%

Wenn ich pdftk auf anderen PDFs versuche, scheint es gut zu funktionieren. Wenn ich die Datenströme manuell extrahiere und sie mit zlib in Python dekomprimiere, dekomprimieren sie richtig. Wenn ich die PDF-Datei in Adobe Reader öffne und erneut speichere, funktioniert pdftk auch gut auf der resultierenden PDF-Datei.

Ich habe das Nitro-PDF nach bestem Wissen manuell überprüft und es scheint ein gültiges PDF zu sein. Ich bin sehr verwirrt darüber, was hier vorgeht.

Als Hintergrund für das Problem habe ich Hunderte dieser pdfs, und ich versuche, nach bestimmten Schlüsselwörtern zu suchen, die ich tun könnte, wenn ich die Dekompression automatisieren kann.

pdftk Version 1.45
Windows 7 Home Premium SP1
Nitro Reader 2 Version 2.5.0.36

Danke, James

    
James Duvall 25.02.2013, 00:03
quelle

2 Antworten

2

Ich habe vom Entwickler eine Antwort auf diese Frage erhalten. Es stellte sich heraus, dass es ein Fehler in der Art war, wie pdftk eine /DecodeParms [null] -Zeile behandelte.

Wenn die Dekodierungsparameter Null sind, könnte ein Schreiber einfach die /DecodeParms -Zeile weglassen, aber ein konformer Leser sollte es auf jede Weise verstehen. Ich habe die neue Version von pdftk ausprobiert und das Problem scheint gelöst zu sein.

    
James Duvall 26.08.2013, 06:40
quelle
7

Wenn Sie nicht an pdftk angehängt sind, können Sie qpdf verwenden. Zum Beispiel könnten Sie verwenden:

%Vor%

Für was es sich lohnt, wenn es Blobs gibt, können sie immer noch als binär erscheinen. Der Rest des Streams wird jedoch nicht komprimiert (entweder mit pdftk oder qpdf ). Mit qpdf können Sie alle oder nur die Streams dekomprimieren.

Von qpdf manuell:

  

Wenn --stream-data = dekomprimiert angegeben wird, versucht qpdf   Entfernen Sie alle nicht verlustbehafteten Filter, die es unterstützt. Das beinhaltet   / FlateDecode, / LZWDecode, / ASCII85Decode und / ASCIIHexDecode. Dies   kann sehr nützlich sein, um den Inhalt verschiedener Streams zu überprüfen.

Dasselbe könnte mit pdftk passieren.

    
gpoo 22.03.2013 22:59
quelle

Tags und Links