Felix Riesterer: pdf zu text... und vorher dekomprimieren?

Liebe Forumler,

ich suche schon die halbe Nacht erfolglos nach einer Möglichkeit, mittels eines PHP-Skriptes eine komprimierte (und mit OpenOffice2 erstellte) PDF-Datei auszulesen (Text-Inhalte). Ich finde nichts, was mir weiterhilft.

fpdf und fpdi habe ich schon gesehen (Dank ans Archiv!), auch die pdf2string() eines Usercomments auf den PHP.net-Seiten habe ich ausprobiert...

Wenn ich mir meine mit OO2 erzeugte PDF ansehe, dann steht da mächtig kryptisches Zeichen-Wirrwarr drin, immer wieder mit Abschnitten, in denen etwas in dieser Art steht:

5 0 obj
<< /Length 6 0 R
   /Filter /FlateDecode

stream

|(hier steht wieder irrer Zeichenwirrwarr)

Wenn ich meine gefundene pdf2string() (aus den User Comments von PHP.net) nutzen möchte, bräuchte ich (anscheinend, bin mir nicht sicher) eine unkomprimierte Version meiner PDF. Wie kann ich sie mit PHP vorher entkomprimieren?

Kennt jemand eine pdf-zu-text-oder-was-anderes-auswertbares-Klasse?

Liebe Grüße aus Ellwangen,

Felix Riesterer.

  1. hallo Felix,

    um es kurz zu machen: wie hast du deine PDF denn "komprimiert"?

    Ich gebe zu, daß ich PDF absolut nicht mag und alles, was damit zu tun hat, gewissermaßen nur mit dicken Handschuhen anfasse und möglichst schnell sehr weit wieder wegwerfe.  Trotzdem wüßte ich nicht, was da eben komprimiert sein sollte.

    OpenOffice benutze ich auf ähnliche Weise so gut wie nie - ich brauche es nicht. Habe es aber natürlich, und habe auch schonmal nachgekuckt, ob damit erstellte PDF sich unter Windows mit Adobe Acrobat (also _nicht_ mit dem Reader, sondern mit dem vollen Programm) exportieren und in HTML verwandeln lassen. Das geht.

    Kennt jemand eine pdf-zu-text-oder-was-anderes-auswertbares-Klasse?

    Wenn das mit PDF->HTM unter Windows mit Adobe Acrobat geht, sollte es also prinzipiell möglich sein. Aber PHP kennt meines Wissens nur Funktionen zum Erzeugen von PDF, nicht aber zum Konvertieren. Im Extremfall wird dir gar nichts andres übrigbleiben, als systematisch alle in http://www.php.net/manual/de/ref.pdf.php aufgeführten PDF-Funktionen mit Einzelscripts aus deiner Werkstatt gegenzuprüfen.

    5 0 obj
    << /Length 6 0 R
       /Filter /FlateDecode

    stream

    Erstelle dir einfach mal mit OpenOffice eine PDF und mit einem PHP-Script eine zweite PDF, die exakt denselben Inhalt haben sollte, typischerweise ein "hallo Welt!". Dann kuckst du dir beide in einem Texteditor nebeneinander an und schaust nach, ob es Unterschiede gibt. Wenn es welche gibt, könnte dich das auf die richtige Idee bringen. Ich würde jedenfalls erstmal so vorgehen, getestet hab ich sowas allerdings noch nie.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    http://www.christoph-schnauss.de
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. Hallo Felix,

    genau das selbe Problem beschäftigt mich auch die letztden zwei tage

    fpdf und fpdi habe ich schon gesehen (Dank ans Archiv!), auch die pdf2string() eines Usercomments auf den PHP.net-Seiten habe ich ausprobiert...

    soweit bin ich auch gekommen, aber beim Versuch mit dem Skript auf PHP.net habe ich bei der Funktion "gzuncompress" (nach entfernen des "@") eine Fehlermeldung bekommen, mit der ich nicht viel anfangen kann.
    Es wäre, glaube ich, der richtige Ansatz.

    PS.: Hast du, oder ein anderer, schon so etwas mit word, powerpoint oder excel gemacht? Würde mich auch interessieren ob es schon so was giebt wie word2txt, powerpoint2txt usw.

    mfg Tobias Buschor

  3. Hallo Felix,

    Kennt jemand eine pdf-zu-text-oder-was-anderes-auswertbares-Klasse?

    Kurze Frage: Weißt du genau, dass die PDF immer mit OpenOffice.org 2.0 erzeugt wurde? Hast du die Quelldatei von OpenOffice beim Auslesen des Textes zur Verfügung?
    Wenn dem so wäre, dann ist die Lösung sehr leicht.

    Bei PDF-Dateien gibt es da wahnsinnige Probleme, ich hatte mich selbst die letzten 3-4 Wochen mit PDF - unter Java - rumgeschlagen.

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
    1. Lieber Marc,

      Kurze Frage: Weißt du genau, dass die PDF immer mit OpenOffice.org 2.0 erzeugt wurde? Hast du die Quelldatei von OpenOffice beim Auslesen des Textes zur Verfügung?

      ich weiß ganz genau, dass sie das _nicht_ wurde. Es ist genaugenommen etwas komplizierter. In unserer Schule möchte ich an die Daten des Vertretungsprogramms herankommen, um sie online auszuwerten. Das Programm speichert aber keine spezielle Datei, sondern bietet nur einen Ausdruck auf einen Drucker an. Da dachte ich, die Ausgabe in ein PDF umzuleiten, um es anschließend wieder auszulesen. Daher mein Ansatz.

      Prinzipiell könnte ich mir auch eine andere Lösung vorstellen, solange ich an die Daten (Text-Daten) aus dem Ausdruck gelange, denn wie gesagt, eine andere Form der Speicherung sieht das Programm so nicht vor. Die komplette Datendatei auszulesen ist illusorisch, da ich dazu sinnvollerweise den Quellcode des Verwaltungsprogrammes bräuchte, und da komme ich (als Musiker und webmaster!!) nicht dran.

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.