PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Massenausdruck über Java-Applet



hayloft_ch
10-10-2005, 15:18
Hallo allerseits

In unserem Fakturierungs-Programm (PHP), das wir selbst entwickelt haben werden über ein Java-Applet direkt Einzahlungsscheine auf den Drucker geschickt. Nun soll das Programm so erweitert werden, dass auch Serienrechnungen ausgedruckt werden können. Die Rechnungen werden per PDF ausgedruckt, nur die Einzahlungsscheine gehen über das Applet.

Nun zu meiner Frage:

Bei einem Serienausdruck muss ich dem Applet ja jede Menge Daten übergeben, wie würdet ihr das machen? Ich sehe folgende Möglichkeiten:

1. Ich übergebe dem Applet sämtliche Daten über <param /> (nur sah ich keine Möglichkeit das irgendwie effizient zu machen, über ein Array zb.).

2. Ich rufe das Applet mehrmals auf, jedesmal mit anderen Parametern, was mir aber ziemlich "bastelig" erscheint.

3. Ich rufe das Applet über Javascript mehrmals auf und übergebe die Daten ebenfalls über ein Javascript an die Klasse (da hatte ich dann aber noch ein weiteres Problem, auch das ich ev. dann zurückkommen würde).

Irgendwie scheinen mir alle Varianten nicht besonders gut, aber irgendwie fehlen mir weitere Ideen. Was denkt ihr so darüber oder gibt es ev. noch andere Möglichkeiten??

Giuly
10-10-2005, 18:08
Wie wär's, wenn du dem Applet die Daten per Socket gibst?


PRINT 1.pdf

PRINT 2.pdf

PRINT n.pdf


So z.B., oder was auch immer du deinem Applet übergeben willst.

hayloft_ch
11-10-2005, 06:52
meinst du damit, dass ich zwischen dem Applet und dem Server eine Socket-Verbindung aufbauen und die Daten darüber schicken soll??

anda_skoa
11-10-2005, 13:56
Ja, ich denke das meint er damit.

Ciao,
_

hayloft_ch
12-10-2005, 07:58
Mir scheint das aber irgendwie auch wieder eine sehr aufwendige Lösung.
Dann bau ich eine zweite Verbindung auf nur um die Daten zu übermitteln.

Dann wäre mir eine meiner Varianten doch irgendwie angenehmer... werds mir wohl nochmals genauer ansehen, wenn hier auch keine anderen Ideen vorhanden sind.

mwanaheri
12-10-2005, 08:30
wie wäre es denn, wenn du die benötigten Variablen in einer Klasse bündelst und eine Collection aus Objekten dieser Klasse übergibst? Durch die kann doch dann das Applet durchiterieren und die Sachen ausdrucken.

anda_skoa
12-10-2005, 14:26
Mir scheint das aber irgendwie auch wieder eine sehr aufwendige Lösung.
Dann bau ich eine zweite Verbindung auf nur um die Daten zu übermitteln.

Versteh ich jetzt nicht ganz.
Du wirst ja vermutlich die PDF Dateien schon irgendwie transferieren, oder hast du die BASE64 kodiert als Applet Parameter?

Ciao,
_

Lin728
13-10-2005, 11:31
* Also die Daten als Applet-Parameter zu übermitteln wird nicht wirklich funktionieren, da die meisten JVMs da fixe Puffergrössen annehemen - kann sein dass Sun da nachgebessert hat, aber meine Erfahrungen mit älteren JVMs sind einfach haarsträubend.
Ausserden musst du die daten dann codieren und vom Browser in die JVM hohlen was sehr umständlich und langsam ist.

* Das Applet von JS aufzurufen geht natürlich wenn LiveConnect funktioniert (auch so ne Sache ;) ), aber wo hohlst du dir die Daten her?

Eine weitere Möglichkeit wäre, dass du einfach über java.net.URLConnection dir die Daten vom Server hohlst, dann benötigst du nicht einmal einen eigenen Server-Process.