Gibt es ein Gebiet, in dem die PDF-Dateien angeben, deren Codierung?
Ich verstehe, dass es unmöglich ist zu bestimmen, die Zeichenkodierung, die von jedem stringform Daten einfach durch einen Blick auf die Daten. Dies ist nicht meine Frage.
Meine Frage ist: gibt es ein Feld in einer PDF-Datei, wo aus Konvention, der die Kodierung angegeben wird (z.B.: UTF-8)? Das wäre etwas, was in etwa Analog zu <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
im HTML-Format.
Vielen Dank im Voraus,
Blz
InformationsquelleAutor blz | 2012-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen schnellen Blick auf die PDF-Spezifikation zu suggerieren scheint, dass Sie können verschiedene Kodierungen innerhalb einer PDF-Datei. Haben Sie einen Blick auf Seite 86. So eine PDF-Bibliothek, mit irgendeiner Art von low-level-Zugriff sollte in der Lage sein, um Sie mit der Codierung verwendet, die eine Zeichenfolge. Aber wenn Sie wollen einfach nur den text und kümmern sich nicht um die internen Codierungen verwendet, ich würde vorschlagen, lassen Sie die Bibliothek kümmern sich um die Konvertierungen für Sie.
Die information ist da, aber es könnte ein großes Projekt zu schreiben, einen parser selbst, um herauszufinden, welche Codierungen verwendet werden. Welches problem Sie zu lösen versuchen? für was verwenden Sie die Liste der verwendeten Codierung für?
Mattias, ich bin mit PDFMiner zum extrahieren von text-Feldern von wissenschaftlichen arbeiten. Ich würde gerne wissen, was die Codierung des PDF ist, um richtig zu interpretieren den string text. Wenn überhaupt möglich, möchte ich zu nicht verlassen sich auf die Benutzer-Eingabe (die meisten Benutzer nicht wissen, was UTF ist, sowieso), noch möchte ich erraten Sie die Enkodierung mit Hilfe von Heuristiken.
Warum wollen Sie wissen, die andere Codierung verwendet, die in das PDF? Nicht gut ist, dass Sie nicht brauchen, um damit umzugehen? Wenn das problem ist, dass Sie wollen, um die Ausgabe der text innerhalb der PDF zu verschiedenen encoding-ich denke, dass Sie besser ist immer, extrahieren Sie es als UTF-8 und wandelt es in was auch immer Codierung, die Sie möchten, es zu sein.
-1 für den link-nur Antwort. meta.stackexchange.com/questions/8231/...
InformationsquelleAutor Mattias Wadman
PDF verwendet "mit dem Namen" Zeichen, in dem Sinne, dass ein Charakter einen Namen und nicht ein numerischer code. Zeichen "a" hat den Namen "a", character "2" hat den Namen "zwei" und das euro-Zeichen hat, den Namen "euro" zu geben, ein paar Beispiele. PDF definiert ein paar "standard" - "Basis" - Codierungen (mit dem Namen "WinAnsiEncoding", "MacRomanEncoding" und ein paar mehr, erinnere mich nicht genau), encoding wird eine eins-zu-eins-Korrespondenz zwischen Zeichen in Dateinamen und-byte-Werte (ja, nur 0 bis 255). Die genaue normative Werte für diese vordefinierten Zeichensätze sind in der PDF-Spezifikation. Alle diese Codierungen verwenden den ASCII-Werten für den US-ASCII-Zeichen, aber Sie unterscheiden sich in den höheren byte-Werte.
Einer PDF-Datei definieren kann, neue Kodierungen, indem eine "Basis" - Kodierung (sagen, WinAnsiEncoding) und der Neudefinition von ein paar bytes, also ein PDF-Autor, zum Beispiel, definieren Sie eine neue Kodierung mit dem Namen "MySuperbEncoding" WinAnsiEncoding aber mit byte-Wert 65 geändert, um meine Charakter "ntilde" (diese definition wird in der PDF-Datei), und dann angeben, dass einige Zeichenfolgen in der Datei-Kodierung "MySuperbEncoding". In diesem Fall ein string, der die byte-Werte 65-66-67 würde bedeuten Zeichen "ñBC" und nicht "ABC". Und beachten Sie, dass ich meine Zeichen, nichts zu tun mit Zeichen oder Schriftarten. Die verschiedenen Zeichenfolgen innerhalb der PDF-Datei verwenden unterschiedliche Kodierungen (dies bietet eine Möglichkeit für die Verwendung von mehr tan 256 Zeichen in die PDF-Datei, auch wenn jeder string ist definiert als eine byte-Sequenz, und ein byte entspricht einem Zeichen).
So, die Antwort auf deine Frage ist: - Zeichen in eine PDF-Datei kann auch codiert werden intern in einer ad-hoc-Codierung an Ort und Stelle für eine bestimmte PDF-Datei. PDF-Parser sollte, passen Sie ihn bei Bedarf. Ich weiß nicht, PDFMiner aber ich bin überrascht, dass es (als PDF-parser) gibt falsche Werte, da sich die Spezifikation ganz klar auf, wie dieser interpretiert werden muss. Es IST möglich, um alle notwendigen Informationen aus der PDF-Datei, aber, wie Matthias schon sagte, es könnte ein großes Projekt werden und ich denke, ein Programm mit dem Namen PDFMiner sollte genau das tun dieser Art des Jobs.
nur 0 bis 255) - Nein. Sie komplett zu ignorieren Composite-Schriften, die multi-byte-Codierungen, auch gemischt diejenigen, die z.B. die vordefinierten Codierung GBK2K-H ist eine gemischt 1-, 2-, und 4-byte-Verschlüsselung. Und dies ist bei weitem nicht die einzige Fehlinformation in deine Antwort.
InformationsquelleAutor Jojonete