Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Eine gültige PDF Datei beginnt mit den Zeichen %PDF-<<Versionsnummer>>, wobei die Versionsnummer der PDF Version des zugehörigen PDF Dokuments entspricht. Gültige PDF Versionen sind 1.0 bis 1.7 und 2.0. 

Wenn ein Dokumentbetrachter ein Datenstrom einliest, werden zunächst die ersten Bytes betrachtet. Anhand dieser Bytes erkennt die Anwendung, welches Format (als Beispiel GIF, JPEG, PDF usw.) das Dokument hat und kann so entscheiden, ob und wie die Anwendung mit diesen Dokument umgehen kann.

Beginnt ein Dokumentdatenstrom mit %PDF-<<Versionsnummer>>,  wird der Datenstrom als PDF Dokument erkannt.

...

Mit PDF 2.0 ist diese strenge Vorgabe gelockert worden. Für bestimmte Arbeitsabläufe oder Anwendungsfälle erlaubt nun PDF 2.0* Spezifikation, beliebige Daten in eine PDF-Datei zu schreiben, zusätzlich zu und vor den eigentlichen PDF-Daten. Dieses Verhalten wird zwar aus Kompabilitätsgründen ausdrücklich nicht empfohlen, aber es wird auch nicht negiert.

...

Der OffsetPDFFormat wird der Lockerung des PDF-2.0 Standards gerecht und erfüllt die Anforderung auch PDF Dateien zu erkennen und zu akzeptieren, die zusätzliche Daten vor den eigentlichen PDF-Daten in ihrem Datenstrom beinhalten.

Warum braucht es dazu ein eigenes OffsetPDFFormat, kann das nicht auch

...

das normale PDFFormat machen?   

Als Multi-Format Anwendung unterstützt jadice sehr viele Formate. Beim Einlesen von Dokumentdaten findet zunächst eine Formaterkennung statt. Dieser Prozess schaut sich die ersten Zeichen des Datenstroms an und entscheidet anhand derer eindeutig, welcher spezialisierter Format Reader das weitere Einlesen des Dokuments übernimmt.

Der naheliegende Ansatz, eine beliebige Anzahl führender Zeichen vor %PDF-<<Versionsnummer>> im bisherigen PDF Format zu akzeptieren, liefert keine eindeutige Formaterkennung. Es gibt andere Dokumentformate, die es erlauben PDF Dateien einzubinden und manchmal kann es auch einfach vorkommen, dass zufällig %PDF in dem Datenstrom eines anderen Formats zu finden ist. In diesen Fällen ist es für Formaterkennung nicht mehr eindeutig, um welches Format es sich handelt und welcher spezialisierte Reader den weiteren Lesevorgang übernehmen soll.
Um diese Fälle auszuschließen, reiht sich der OffsetPDFFormat am Ende der Formaterkennung ein , und kommt erst zum Zug nachdem alle anderen Formate die den nach dem Datenstrom befragt worden sind und diesen abgelehnt haben..    

Abgrenzung zu PDF-Struktur Lesestrategien 

...

Konfigurationsmöglichkeiten

Die Analyse, , ob und an welcher Stelle %PDF-<<Versionsnummer>> in einem Datenstrom zu finden ist, erzeugt einen gewissen Aufwand. Um insbesondere bei großen Dateien relativ schnell zu einem Ergebnis zu kommen, und den Ladevorgang nicht unnötig in der Formaterkennung auszubremsen, ist die Anzahl der zu untersuchenden Bytes im OffsetPDFFormats auf maximal 8192 führende Zeichen begrenzt. Standardmäßig werden als Default 2048 Zeichen als Offset betrachtet. Der Default Offset Wert kann per Konfiguration angepasst werden. Dazu stehen zwei Wege zur Verfügung.    

...

Codeblock
languagejava
java -Dcom.levigo.jadice.format.pdf.OffsetPDFFormat.offsetSize=1024 <<application_launcher_class>>

oder alternativ initial nach dem Start der Anwendung und vor dem ersten Ladevorgang

Codeblock
languagejava
System.setProperty("com.levigo.jadice.format.pdf.OffsetPDFFormat.offsetSize", "1024");

...