Hallo,

... und wandte sich ab und weinte bitterlich. Nun gibt es schon mal was, was man besser mit RPG machen würde (aus Streamfile SCS Spooldaten erzeugen) dann wird das mit Java gemacht...
Dieser Toolbox Spielkram (außer JDBC), der ist sowas von buggy, da würde ich konsequent die Finger von lassen.

mfg

Dieter Bender



Zitat Zitat von mmu400
Wir erzeugen eine Druckliste in Java und übertragen diese an die iSeries. Die Spoolfileattribute werden bei der Übertragung auf die iSeries durch das Defaultprinterfile QPNPSPRTF generiert,
das Spoolfile wurde unter dem Druckerttyp *USERASCII angelegt. (Formvorschub=*autocut) Das Papier soll nun auf dem Druckerschacht 2 gedruckt werden. Wir füllen den Parameter DRAWER bei der Dokumentenerstelllung in Java bereits ab, im Spoolfile steht das dann auch so drin, nur druckt es leider nicht auf dem Schacht zwei.
Wir haben vieles ausprobiert, leider ohne Erfolg. Was haben wir übersehen ? (Wir drucken auf einem Lexmark S2455, AS-Einheitentyp 3812)
Gruss Marcel

Zur technischen Erklärung eine Kurzfassung unseres Druckprogrammes:
private void print (String file, String sys, String user, String password, String printer){
try{
FileInputStream in = new FileInputStream(file);
AS400 system = new AS400(sys,user,password);
Printer prt = new Printer(system,printer);
String outq = prt.getStringAttribute(Printer.ATTR_OUTPUT_QUEUE);

OutputQueue spool = new OutputQueue(system,outq);

PrintParameterList parms = new PrintParameterList();

parms.setParameter(PrintObject.ATTR_COPIES, 1);
parms.setParameter(PrintObject.ATTR_FORMFEED, "*AUTOCUT");
parms.setParameter(PrintObject.ATTR_SRCDRWR, 2);
parms.setParameter(PrintObject.ATTR_OUTPUT_QUEUE, spool.getPath());
SpooledFileOutputStream out = new SpooledFileOutputStream(system,parms,null,null);
byte buf = new byte[2048];
int bytesRead =0;
do
{
bytesRead = in.read(buf);
if (bytesRead != -1) {
out.write(buf,0,bytesRead);
}
} while (bytesRead != -1);
out.close();
system.disconnectAllServices();
}catch(Exception e){
System.out.println();
}

}