tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
4397
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von hscheffknecht
    hscheffknecht hscheffknecht ist offline Mitglied
    Registriert seit
    May 2003
    Ort
    Feldkirch (V, Ö)
    Beiträge
    19
    Hallo!

    Wer kennt Objekte, die es möglich machen, ein PDF in ein Bild umzuwandeln, das dann ausgegeben werden soll?

    Mir wurde Ghostscript empfohlen, aber aus der Website werde ich nicht schlau (falls ich die richtige erwischt habe: http://www.cs.wisc.edu/~ghost/) und ich weiß nicht ob man das für ASP verwenden kann.

    danke für eure Hilfe
    Herbert
     

  2. #2
    Avatar von Konstantin Gross
    Konstantin Gross Konstantin Gross ist offline Mitglied Platin
    Registriert seit
    Sep 2003
    Ort
    nähe Kassel (Hessen)
    Beiträge
    703
    Hi,
    soweit ich weiß ist das unter ASP noch nicht möglich! Ich habe nur sehr teure Programme dafür gefunden aber nix für ASP.
     
    Internetseite:
    http://www.texturenland.de

    Blog:
    http://blog.texturenland.de

    Codesnippets:
    .NET-Snippets

    - Sollte ich bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen -

  3. #3
    Avatar von hscheffknecht
    hscheffknecht hscheffknecht ist offline Mitglied
    Registriert seit
    May 2003
    Ort
    Feldkirch (V, Ö)
    Beiträge
    19
    Hallo Leute!
    Danke für eure Hilfe *smile*

    Ich habe mich gestern Nachmittag mit Ghostscript beschäftigt und bin auf folgende Lösung gekommen:

    • Ghostscript herunterladen und auf dem Server installieren

    • Ghostscript mit folgendem Befehl starten:
    wshell.run "C:\Programme\ghostscript\gs8.00\bin\gswin32c.exe -sDEVICE=png16m -r100 -dNOPAUSE -sOutputFile=d:\web\mydocs\temp.png d:\web\mydocs\temp.pdf -c quit" , 1, TRUE

    -> gswin32c: Eingabezeilenversion von Ghostscript für Windows
    -> sDEVICE=Treiber für umwandlung in png
    -> -r100: PDF mit 100dpi rastern
    -> -dNOPAUSE: ohne dem Eintrag würde gs nach jeder Seite in der PDF auf eine Eingabe vom Benutzer warten dh. das Programm würde ewig laufen und das ASP Script würde nie fertig werden bis der Server die ausführung abbricht.
    -> -c quit: gs wird nach dem rastern beendet.

    gs rastert die pdf leider ohne anti aliasing. Um eine schönere Grafik zu erhalten, muss man mit mehr dpi (200 -300) rastern und anschliessend mit einem anderen programm (zb. ImageGlue) die Datei Laden und verkleinern.

    Die Performance ist dann zwar im A****, aber dafür hast du ein tolles Bild von einem PDF.

    Beispiel:
    Bild ohne Antialiasing:
    http://80.120.126.70/bild1.png

    Bild mit Antialiasing:
    http://80.120.126.70/bild2.gif

    lg
    Herbert
     

  4. #4
    Avatar von Konstantin Gross
    Konstantin Gross Konstantin Gross ist offline Mitglied Platin
    Registriert seit
    Sep 2003
    Ort
    nähe Kassel (Hessen)
    Beiträge
    703
    Hey cool Ok mit Ghostscript kenne ich mich nicht aus.
     
    Internetseite:
    http://www.texturenland.de

    Blog:
    http://blog.texturenland.de

    Codesnippets:
    .NET-Snippets

    - Sollte ich bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen -

  5. #5
    Avatar von hscheffknecht
    hscheffknecht hscheffknecht ist offline Mitglied
    Registriert seit
    May 2003
    Ort
    Feldkirch (V, Ö)
    Beiträge
    19
    Ja, bis gestern wusste ich auch nicht so richtig was Ghostscript ist und kann.
    Aber wenn man ein paar Stunden herum tüftelt, kann sich das schnell ändern.
     

  6. #6
    Jacky2410 Jacky2410 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    5
    Hallo Leute,

    ich habe dasselbe Problem: Moechte pdf-files in jpg konvertieren. Dazu soll man eine pdf (sagen wir mal datei.pdf) hochladen und der Server bastelt daraus fuer jede Seite des pdfs ein eigenes jpg mit dem Name datei_seitennummer.jpg...

    Ich habe ganz ehrlich null Ahnung von Ghostscript, weiss aber, dass gsview und ghostscript auf dem Server installiert sind. Wo finde ich gute Tutorials, mit denen ich lernen kann, was ich wissen muss Wie starte ich das ganze dann aus PHP?

    Vielen Dank fuer eure Hilfe,
    Flo
     

  7. #7
    Avatar von hscheffknecht
    hscheffknecht hscheffknecht ist offline Mitglied
    Registriert seit
    May 2003
    Ort
    Feldkirch (V, Ö)
    Beiträge
    19
    Hallo Flo,

    nach 3 1/2 Jahren kann ich da leider auch nicht mehr weiter helfen, außerdem kenne ich mich in PHP nicht wirklich gut aus. Ich hoffe trotzdem, dass dir der obere Eintrag von mir weiter helfen kann.

    lg Herbert
     

  8. #8
    Jacky2410 Jacky2410 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    5
    Ich habs mit:

    <?
    exec("/usr/bin/gs pdf2ps /httpdocs/f1/gs/test.pdf");
    ?>

    versucht. Das pdf liegt auch dort, wor es angegeben ist. Ebenfalls hab ich

    <?
    exec("/usr/bin/gs pdf2ps test.pdf");
    ?>

    versucht, da das php-file aus demselben Ordner wie das pdf-file kommt, jedoch ebenfalls ohne jegliche Ergebnisse.

    Waere dankbar fuer jeden Hinweis.
    Flo
     

  9. #9
    Avatar von hscheffknecht
    hscheffknecht hscheffknecht ist offline Mitglied
    Registriert seit
    May 2003
    Ort
    Feldkirch (V, Ö)
    Beiträge
    19
    Hallo Flo,

    unterscheidet sich die Art der Angabe der Parameter bei Linux denn derart, oder müssten auch Bindestriche verwendet werden?

    Ich hätte es mit folgendem Befehl probiert:

    exec("/usr/bin/gs -sDEVICE=png16m -r100 -dNOPAUSE -sOutputFile=temp.png temp.pdf -c quit");

    Hast du Vollzugriff auf den Server oder einen Linux Computer zur Verfügung? Dann könntest du auch probieren, den Befehl in der Eingabeaufforderung einzugeben und schauen was für Fehlermeldung kommt. Vielleicht kannst du auch im PHP irgendwie den Rückgabetext ausgeben?

    lg Hörbi
     

  10. #10
    Jacky2410 Jacky2410 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    5
    PHP-Code:
    exec('/usr/bin/gs -dBATCH -dUseCIEColor -dNOQUIET -sDEVICE=jpeg -sOutputFile=bild.jpg test.pdf'$ausgabe$returnValue); 
    Damit hab ichs hinbekommen. Einziges Problem besteht darin, dass ich von einem dreiseitigen PDF-File nur die erste Seite als Jpg bekomme. Welches Format ist denn am geeignetsten fuer viel Textdartellung? Soll ich da jpg, png oder lieber tiff nehmen?

    Die Ausgabe $ausgabe liefert ein Array mit Meldungen "Page 1", ">>showpage, press to continue<<", "Page 2", ">>showpage, press to continue<<" und so weiter und den und $returnValue = 0.

    Soweit alles gut, aber ich will ja nicht nur das Deckblatt bekommen, sondern jede Seite in ein einzelnes file. Irgendwo hab ich den Befehl als
    PHP-Code:
    exec('/usr/bin/gs -dBATCH -dUseCIEColor -dNOQUIET -sDEVICE=jpeg -sOutputFile=bild.jpg test.pdf[]'$ausgabe$returnValue); 
    gesehen, der tuts aber nicht...

    Nee, Linux hab ich selber nicht, mein Kumpel meinte nur, dass auf dem Server Unix laeuft und ich deshalb nicht die Windows-Befehle nutzen koennte, sondern das ueber Linux-Eingaben machen sollte.

    Wie gesagt, es tuts, das Deckblatt wird erstellt, aber die restlichen Seiten werden "uebersehen" oder ignoriert... Woran liegts?

    Danke fuer eure Bemuehungen....
    Flo
     

  11. #11
    Jacky2410 Jacky2410 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    5
    Zwischenergebnis:

    Okay, hab nochmal weiter gegoogelt und raus kam folgendes:

    PHP-Code:
    exec('/usr/bin/gs -dBATCH -dUseCIEColor -dNOQUIET -sDEVICE=jpeg -sOutputFile=bild-%03d.jpg test.pdf'$ausgabe$returnValue); 
    Damit lassen sich die verschiedenen files erstellen. Anscheinend wurde das eine file jedesmal ueberschrieben, da ja keine Variation in dem Namev vorkommt.

    Jetzt muss ich nur noch rausfinden, wie man den outputnamen gleich dem inputnamen erstellen kann. php-Variablen kann man hier nicht benutzen, da meckert php bisher. Gibt es intern da irgendnen Befehl?

    Naja, ich such mal weiter...
    Flo
     

  12. #12
    Avatar von hscheffknecht
    hscheffknecht hscheffknecht ist offline Mitglied
    Registriert seit
    May 2003
    Ort
    Feldkirch (V, Ö)
    Beiträge
    19
    Hallo Flo,

    ich habe eine Seite gefunden, wo alle Befehle aufgelistet werden.

    http://www.cs.wisc.edu/~ghost/doc/AFPL/6.01/Use.htm#PDF

    Ich hoffe, die Seite hilft dir weiter. Auf jeden Fall findest du hier Parameter für die Seitenangaben.

    lg Hörbi
     

  13. #13
    Jacky2410 Jacky2410 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    5
    Danke fuer eure Hilfe. Ich habs hinbekommen.

    Hab einfach einen string $commando in php gebastelt und den kann ich ja mit den Dateinamen versehen. Sehr praktisch. Dann muss ich nur noch den String ausfuehren lassen.

    Echt einfach, wenn man weiss, wie es geht...

    DANKE

    Flo