2016-09-02 6 views
0

Ich kann keine PDF-Datei mit lesen. Diese PDf ist eine gültige PDF, wenn ich versuchte, dies zu öffnen.ITEXT PDFReader kann das PDF nicht lesen

URL von PDF: http://www.fundslibrary.co.uk/FundsLibrary.DataRetrieval/Documents.aspx?type=fund_class_kiid&id=f096b13b-3d0e-4580-8d3d-87cf4d002650&user=fidelitydocumentreport

+0

Bitte teilen Sie Ihr PDF und den Code, den Sie verwenden, um es zu lesen. Ohne beides kann Ihre Frage nicht beantwortet werden. –

+0

Bitte öffnen Sie das PDF in Adobe Reader, verwenden Sie dann "Speichern unter" und speichern Sie eine Kopie der Datei unter einem neuen Namen. Sie werden feststellen, dass iText 'PdfReader' diese Datei öffnen kann. Dies ist ein Hinweis darauf, dass Ihre Behauptung, dass die PDF-Datei gültig ist, falsch ist. Auf welcher Grundlage begründen Sie diese Behauptung? Nicht alle PDFs, die in Adobe Reader geöffnet werden können, sind gültig. –

Antwort

0

Die PDF in Frage verschlüsselt ist.

Nach der PDF-Spezifikation,

Verschlüsselung gilt für alle Strings und Bäche in dem PDF-Datei des Dokuments, mit folgenden Ausnahmen:

  • Die Werte für den ID-Eintrag in dem Anhänger
  • Alle Zeichenfolgen in einem Encrypt-Wörterbuch
  • Alle Zeichenfolgen, die in Datenströmen enthalten sind, z. B. Inhaltsdatenströme und komprimierte Objektdatenströme, die selbst verschlüsselt sind

Später gibt es Informationen über spezielle Fälle, in denen die Dokumentebene Metadatenstrom nicht verschlüsselt ist entweder oder in denen nur Anhänge verschlüsselt werden.


The Cross-Reference-Stream Wörterbuch der PDF sieht wie folgt aus:

<< 
/Root 101 0 R 
/Info 63 0 R 
/XRef(stream) 
/Encrypt 103 0 R 
/ID[<D034DE62220E1CBC2642AC517F0FE9C7><D034DE62220E1CBC2642AC517F0FE9C7>] 
/Type/XRef 
/W[1 3 2] 
/Index[0 107] 
/Size 107 
/Length 642 
>> 

Wie man dort sehen kann, ist ein nicht-verschlüsselten String hier, (stream), das weder der Wert für die ID weder in einem Encrypt-Wörterbuch noch in einem Stream. Darüber hinaus gelten die vorgenannten Sonderfälle auch hier nicht.

Somit verletzt diese Datei die PDF-Spezifikation hier. Daher ist diese Datei keine gültige PDF.


Des Weiteren gemäß der PDF-Spezifikation

Die letzte Zeile der Datei wird nur das End-of-Datei Marker, %% EOF enthalten.

Die Datei auf handsends wie diese

Screenshot of last lines of file

, also die letzte Zeile der Datei etwas anderes als der Marker End-of-Datei enthält (die vor dem in der Leitung), a 0x06 und 0x0c.

Die Datei verstößt daher auch hier gegen die PDF-Spezifikation.

Verwandte Themen