Es kommt darauf an, wie gut / zuverlässig die Erkennung funktioniert.
Hier meine Auswahl der wichtigsten Bits + Teile aus der 756 Seiten langen offiziellen Definition, direkt aus dem Mund des Pferdes (PDF 32000: 1-2008 ):
Eine grundlegende konforme PDF-Datei muss aus folgenden vier Elementen bestehen (siehe Abbildung 2):
Die erste Zeile einer PDF-Datei besteht aus einer Kopfzeile bestehend aus 5 Zeichen% PDF- gefolgt von einer Versionsnummer der Form 1.N, wobei N eine Ziffer zwischen 0 und 7 ist.
Ein konformer Leser akzeptiert Dateien mit einem der folgenden Header:
% PDF-1.0
% PDF-1.1
% PDF-1.2
% PDF-1.3
% PDF-1.4
% PDF-1.5
% PDF-1.6
% PDF-1.7
[...]
Wenn eine PDF-Datei wie die meisten Binärdaten enthält (siehe 7.2, "Lexikalische Konventionen"), folgt unmittelbar auf die Kopfzeile eine Kommentarzeile, die mindestens vier Binärzeichen enthält, also Zeichen mit 128 Zeichen oder größer. Dies stellt das ordnungsgemäße Verhalten von Dateiübertragungsanwendungen sicher, die Daten nahe dem Anfang einer Datei prüfen, um zu bestimmen, ob der Inhalt der Datei als Text oder als Binärdatei behandelt werden soll.
Trailer
[....] Die letzte Zeile der Datei soll nur den Dateiende-Marker %% EOF enthalten. Die beiden vorhergehenden Zeilen enthalten das Wort keyword startxref und den Byte-Offset im dekodierten Stream vom Anfang der Datei bis zum Anfang des Schlüsselwortes xref im letzten Querverweisabschnitt pro Zeile und Zeile.
Zwei der wichtigsten Dinge zu erinnern:
(a) Die erste 'Kopfzeile'
%Vor%[wobei X in 0..7] auf einer eigenen Zeile erscheinen muss, gefolgt von einem Zeilenumbruch. Diese Zeile muss innerhalb der ersten 4096 Bytes erscheinen, nicht unbedingt in der ersten Zeile. Die vorhergehenden Zeilen enthalten möglicherweise Nicht-PDF-Inhalt, aber Druckerjob-Sprachbefehle (PJL) oder Kommentare.
(b) Die nächste Zeile muss vier Binärbytes enthalten, wenn das PDF Binärdaten enthält.
Parsing für '% PDF-1'. hat schon viele Leute gebissen ....
Eine PDF-Datei beginnt mit einer ASCII-Zeichenfolge %PDF-1.3
oder etwas ähnlichem, abhängig davon, welche PDF-Version sie tatsächlich ist.