schlossa Geschrieben 17. Dezember 2009 Geschrieben 17. Dezember 2009 Guten Morgen! Ich hab folgendes vor, hab aber keine Ahnung wie sich das realisieren lässt. Es soll ein kleines Programm für einen Drucker werden. Der Drucker hat ein Webinterface in dem man ZPLII-Druckercode pasten kann und dann einen Vorschaudruck erstellen kann. Dies möchte ich gern in Java lösen. Im Webinterface hab ich folgendes Post-Formular: <FORM METHOD="POST" ACTION="zpl"> <P> <TEXTAREA NAME="data" ROWS="24" COLS="80" WRAP="virtual"></TEXTAREA> </P> <INPUT TYPE="hidden" NAME="dev" VALUE="R"> <INPUT TYPE="hidden" NAME="oname" VALUE="UNKNOWN"> <INPUT TYPE="hidden" NAME="otype" VALUE="ZPL"> <P> <!-- Hiermit kann ich also den code in der Textarea 'data' abschicken um die Vorschau zu erstellen --> <INPUT TYPE="submit" NAME="prev" VALUE="Etikettenvorschau"> <!-- Und hiermit könnte ich es evtl gleich ausdrucken --> <INPUT TYPE="submit" NAME="print" VALUE="Etikett drucken"> <INPUT TYPE="reset" VALUE="Zurücksetzen"> </P> <P> <INPUT TYPE="submit" NAME="save" VALUE="Speichern"> <INPUT TYPE="submit" NAME="saveas" VALUE="Speichern unter"> <B>Passwort</B> <INPUT TYPE="password" NAME="pw" VALUE="" SIZE="4" MAXLENGTH="4"> </P> </FORM> Ich hoffe ihr könnt mir ein bisschen unter die Arme greifen Gruß, Schlossa Zitieren
VaNaTiC Geschrieben 17. Dezember 2009 Geschrieben 17. Dezember 2009 OK, das schaut ganz gut für Dich aus. Du kannst das hier HttpComponents - HttpComponents Overview nutzen. Oder es selbst machen, wie folgt: Du musst ein (nennen wir es Http-Post-) Paket zusammenbauen. Schau Dir mal hier Hypertext Transfer Protocol ? Wikipedia an, wie der Traffic aussehen sollte. Und das Paket schickst Du ab und wertest die Antwort aus. Aber da ich die nicht sehe/kenne kann ich Dir da nicht weiterhelfen. Wahrscheinlich liefert der Drucker aber eine Bilddatei zurück. Zitieren
schlossa Geschrieben 17. Dezember 2009 Autor Geschrieben 17. Dezember 2009 (bearbeitet) Ich denke mal HttpComponents ist die bessere Lösung Uuuund.. Wie realisiere ich das mit HttpComponents? sorry.. EDIT: Okay.. gidf http://www.java2s.com/Code/Java/Apache-Common/HttppostmethodExample.htm Nur wie unterscheide ich zwischen <INPUT TYPE="submit" NAME="prev" VALUE="Etikettenvorschau"> und <INPUT TYPE="submit" NAME="print" VALUE="Etikett drucken"> Bearbeitet 17. Dezember 2009 von schlossa Zitieren
VaNaTiC Geschrieben 17. Dezember 2009 Geschrieben 17. Dezember 2009 Du unterscheidest das garnicht. Das unterscheidet der WebServer im Drucker. Denn der bekommt nur einen submit-Button, nämlich den auf den Du gedrückt hast. D.h. das ist eine Weiche mit denselben Parametern zwei Dinge zu tun. Zitieren
schlossa Geschrieben 17. Dezember 2009 Autor Geschrieben 17. Dezember 2009 Du unterscheidest das garnicht. Das unterscheidet der WebServer im Drucker. Denn der bekommt nur einen submit-Button, nämlich den auf den Du gedrückt hast. D.h. das ist eine Weiche mit denselben Parametern zwei Dinge zu tun. Das ist mir schon klar, aber wie sage ich den Java-Code dass er an den Webserver mitschicken soll "wie die Weiche steht" Zitieren
VaNaTiC Geschrieben 17. Dezember 2009 Geschrieben 17. Dezember 2009 Du musst ja über die Http-Komponente Deine Parameter setzen. Der submitbutton ist ganz genau so ein Parameter aus Name=Wert. Der input-Typ submit sagt nur dem Browser, dass er das abschicken soll. Zitieren
schlossa Geschrieben 18. Dezember 2009 Autor Geschrieben 18. Dezember 2009 Alles klar habs hinbekommen. Habe jetzt das was ich zurückbekomme als HTMLDocument eingelesen. Jetzt folgende Aufgabenstellung: stellen wir uns vor es steht in dem dokument folgendes <a href="testseite.html"><img src="testbild.jpg"></a> Ich will jetzt den src-Parameter vom img-Tag auslesen. Allerdings ist alles was ich weiß dass ich ein a-Tag mit gegebenen href-Parameter hab (also das "testseite.html" ist fest) Jemand ahnung wie man das löst? Google war diesmal nicht mein Freund... =/ Zitieren
Dragon8 Geschrieben 18. Dezember 2009 Geschrieben 18. Dezember 2009 Du bekommst nur das als Dokument zurück, oder du bekommst ein vollständiges HTML Dokument zurück, wo unter anderem irgendwo dieser Link vorkommt? Beides lässt sich mit Regular Expressions lösen, bei ersterem brauchste dir so einen Ausdruck nur gegen die Zeile vergleichen die du zurück bekommst, bei zweiterem müsstest du alle Zeilen die du zurück bekommen hast, durchgehen und vergleichen ob sie gegen den Ausdruck passen, und wenn sie das tun, die Quelle vom img-Tag extrahieren. In den Java Tutorials von Sun wird erklärt wie man die RegExp in Java nutzen kann. Der RegExp in deinem Fall wäre: <a href=\".+\\..+\"><img src=\"(.+\\..+)\"></a> Wenn das Bild immer in einem a-Tag eingeschlossen ist, dass nur ein href-Attribut hat, wobei das href-Attribut beliebig gesetzt sein kann, aber nach folgendem Schema aufgebaut ist: [Name].[Endung]. Wenn das der Fall ist, dann steht in der 1. Gruppe der Auswertung dann genau der Dateinamen bzw. Pfad deines Bildes drin. Aber am besten schaust du dir mal das Tutorial an Zitieren
VaNaTiC Geschrieben 18. Dezember 2009 Geschrieben 18. Dezember 2009 Hmm, klingt logisch. Du bekommst eine HTML-Seite als Antwort und logischerweise müsste dann der Browser (in diesem Fall Dein Java) per HTTP-GET das Bild abfragen. Du musst also einen rudimentären Parser programmieren. Da kannst Du ganz pragmatisch vorgehen und einfach: - HTML von allen whitespaces (spaces, CR, LF, ...) befreien, wenn Du Dir nicht sicher bist, dass die Antwort immer gleich "ausschaut". - dann suchst Du einfach nach Deinem <ahref="blablu" als Einstiegspunkt - und nun suchst Du ab diesem Punkt nach <imgsrc=" und merkst Dir die Pos1 - und jetzt suchst Du ab Pos1+1 nach dem nächsten " für das Ende - jetzt holst Du Dir diesen subString und - nun kannst den o.g. HTTP-GET-Request absetzen und das Bild holen. fertig ist der Lack Zitieren
schlossa Geschrieben 19. Dezember 2009 Autor Geschrieben 19. Dezember 2009 Das kann man doch aber bestimmt auch eleganter mit der HTMLDocument-Klasse in Java lösen, oder nicht? Zitieren
VaNaTiC Geschrieben 19. Dezember 2009 Geschrieben 19. Dezember 2009 Das kann man doch aber bestimmt auch eleganter mit der HTMLDocument-Klasse in Java lösen, oder nicht? Mit Sicherheit! Hab ja schon geschrieben, dass dies nur der pragmatische Ansatz ist. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.