PDF im Browser öffnen

maggo119

Grünschnabel
Hallo ich stehe vor einem Problem,

ich möchte ein PDF öffnen, allerdings im Webbrowser.
Ich habe schon einiges probiert aber es hat noch nichts geklappt.

Ich hoffe jemand hat eine Idee, gibt es sowas wie echo() aus php für java, also etwas
mit dem ich html code aus einer Java Klasse an den Browser schicken kann? Damit
könnte man es evtl realisieren.

Bin für jede Idee dankbar,
maggo119
 
Klar ...
du programmierst dir in Java einfach einen HTTP-Server der das beherrscht. Ob dann das System allerdings das PDF im Browser aufmacht oder trotzdem den PDF-Reader startet kannst du nicht beeinflussen.
 
Nja, kann man schon bestimmen, aber nur bedingt. Es kommt drauf an, was der Browser für nen content-type für die Antwort bekommt. Je nach content-type reagiert der Browser anders, bei application/pdf-Object sollte er aber in der Regel die PDF im Browser zeigen. Aber wie kommst du auf den HTTP-Server? Ich kann nix dergleichen aus der Anfrage herauslesen...

Man könnte über die cmd/shell (ProcessBuilder/Runtime/Desktop und was Java noch alles bietet) einen Befehl abfeuern mit der Browseranwendung und der PDF als Parameter, z.B. so:
Code:
firefox deinepdf.pdf
Der Sinn sei aber mal dahin gestellt...

EDIT:
Wofür soll das Ganze eigentlich gut sein?
 
Danke erstmal für euer Antworten.
Also es ist so, dass ich einen Webserver mit Glassfish habe auf dem läuft meine Anwendung.
Jetzt möchte ich aus dieser Anwendung eine PDF erzeugen (funktioniert bereits, wird auf dem Webserver gespeichert) und diese dann öffnen, und an diesem öffnen scheitere ich zur Zeit. Ich möchte das ganze eben im Web-Browser öffnen und nicht mit dem PDF Reader.

Vielleicht gibt es auch eine Möglichkeit, dass ich das PDF so zu sagen "on the fly" erstelle, also dass ich auf dem Server gar keine Datei speichere sondern nur temporär erzeuge, im Browser anzeige und der user sich dann eine Kopie speichern kann. Aber ob das überhaupt machbar ist weiß ich nicht.

btw, mit ProcessBuilder/Runtime/Desktop habe ich mich bereits etwas beschäftigt aber leider noch ohne Erfolg.
 
Ja, wenn das auf dem Server passiert, dann wirst du mit den clientseitigen Runtime-Geschichten eh nix machen können, da du kein Zugriff darauf hast.

Wie du das allerdings hinbekommst, kann ich dir auch nicht sagen, ich kenn mich mit den Application-Servern nicht wirklich aus (klopp mich selbst seit geraumer Zeit mit tomcat rum), aber es müsste irgendwo eine config-Datei geben, in der man die Dateiendungen mit den zugehörigen Content-Types konfigurieren kann. Die Server senden dann in der Regel zu der jeweiligen angeforderten Datei noch den Content-Type im Header mit und die meisten Browser werten das ja dann entsprechend aus.

Wenn du das allerdings on-the-fly machen willst, dann wirst du das, was der Server eigentlich ohnehin schon kann, selbst von Hand machen müssen, nämlich den HTTP-Header zusammenbauen (da kommt auch der Content-Type rein) und im Content-Bereich des HTTP-Headers dann in entsprechender Form (ich geh mal davon aus, dass es wohl binär wäre) einfügen und an den anfragenden Client (Browser) loschicken.

Aber wie SPiKEe schon sagte, kann man nicht davon ausgehen, dass sich die PDF dann wirklich im Browser öffnet. Wenn der User seine eigenen super-special-user-properties verwendet, weil er die Standardeinstellungen nicht leiden kann, dann kann wer weiß was alles passieren. Die in meinen Augen am meisten Sinn machenden Mäglichkeiten wären, dass sich die PDF-Datei im Browser öffnet, im PDF-Reader geöffnet wird oder einfach stumpf runtergeladen und gespeichert wird.
 
Das ist es eigentlich was ich rausgelesen und gemeint habe : du kannst es nur alleine durch den Content-Type - Header NICHT beeinflussen wie der Browser des Clienten mit dem PDF umgeht. Wie Akeshihiro schon sagte gibt es genau drei Möglichkeiten
  • der Browser zeigt das PDF mit dem in-line PDF-Object an
  • der Browser erkennt den PDF-Type und startet den PDF-Reader mit der URL des PDF
  • die Datei wird heruntergeladen da der Content-Type unbekannt ist
Das mit dem on-the-fly ist auch kein Problem ... du kannst aber nicht von ausgehen das ein User sich das File gleich speichert ... die Daten also verloren gehen können *hier ist eine entsprechende Sicherung nötig*.
 

Neue Beiträge

Zurück