leiunn Geschrieben 7. Februar 2007 Geschrieben 7. Februar 2007 hallo, hab von meinem boss die aufgabe bekommen nen altes javaprogramm bissl aufzupeppen ohne es neu zu machen... mein aktuelles Problem ist das drucken ... ich soll realisieren das es möglich ist bestimmte inhalte des programms zu drucken. dabei hab ich 2 möglichkeiten ... entweder ich drucke es direkt aus dem programm heraus oder ich schicke die daten ein ein wordformular in dem es die entsprechenden felder gibt. ich würde es am liebsten in das wordformular laden aber da ich dazu keinerlei informationen gefunden habe wäre es auch kein problem das direkt aus java zu drucken. das was gedruckt werden soll liegt im bereich: x = 15 y = 15 width = 276 height = 276 und es sind mehrere Textfelder in diesem bereich zur Info noch ... die oberfläche besteht nur aus swing elementen hoffe ihr könnt mir weiterhelfen Zitieren
geloescht_Newlukai Geschrieben 7. Februar 2007 Geschrieben 7. Februar 2007 Wenn DU direkt drucken möchtest, schau mal hier rein. Und falls Du doch noch mit Word-Dateien arbeiten möchtest, gibt es von Apache ein entsprechendes Framework. Zitieren
leiunn Geschrieben 7. Februar 2007 Autor Geschrieben 7. Februar 2007 ich glaub ich bin zu blöd aber ich bekomm es net wirklich hin das ich drucken kann... versuche das jetzt direkt aus java ... ich versteh da die beschreibung von dem openbook (java ist auch eine insel) net. kannst mir vllt nen beispielcode schicken oder so? wäre echt super ... Zitieren
kingofbrain Geschrieben 7. Februar 2007 Geschrieben 7. Februar 2007 Servus, der Beispielcode sind die Listings 15.27 und 15.28. Dort hast Du einmal die main-Methode, in der Du den Druckjob definierst und ausführst, und außerdem das Printable-Objekt, das den Inhalt definiert. Weitergehend musst Du Dich dann schon mit den Interfaces und Klassen befassen. Vielleicht ist dafür auch das Sun-Tutorial interessant. Lesson: Printing (The Javaâ„¢ Tutorials > 2D Graphics) Peter Zitieren
leiunn Geschrieben 8. Februar 2007 Autor Geschrieben 8. Februar 2007 ok hab nun doch hinbekommen und das ergebnis ist auch so wie es sein soll ... hab nur ein problem ... ich drück einmal auf ausdrucken aber der druckt das immer 2x. worann kann das liegen? ... habe es an sich genau so wie in dem listing(15.27, 15.28) nur das die ausgabe andere texte enthält und es mehr befehle sind (drawString()) Zitieren
kingofbrain Geschrieben 8. Februar 2007 Geschrieben 8. Februar 2007 Servus, ohne Source Code können wir dazu nichts sagen. Da sich Dein Code vom Listing unterscheidet, ist genau dieser Teil relevant. Peter Zitieren
leiunn Geschrieben 8. Februar 2007 Autor Geschrieben 8. Februar 2007 ok hier der sourcecode Aufruf für den Druck (is nen Menüitem) private JMenuItem getM_00_02() { if (M_00_02 == null) { M_00_02 = new JMenuItem(); M_00_02.setText("Drucken"); M_00_02.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.out.println("Drucken"); PrinterJob pj = PrinterJob.getPrinterJob(); if ( pj.printDialog() == false ) return; pj.setPrintable( new TextPrintable() ); try { pj.print(); } catch (PrinterException e1) { System.out.println("Druckfehler"); } } }); } return M_00_02; } der eigentliche druck class TextPrintable implements Printable { Font font = new Font( "Times", Font.PLAIN, 20 ); public int print( Graphics g, PageFormat pageFormat, int pageIndex ) { if ( pageIndex >= 2 ) return Printable.NO_SUCH_PAGE; g.setFont( font ); g.drawString(tae.field[8][0] + " " + tae.field[8][1] + " " + tae.field[8][2] + " " + tae.field[8][3] + " " + tae.field[8][4] + " " + tae.field[8][5] + " " + tae.field[8][6] + " " + tae.field[8][7] + " " + tae.field[8][8], 100, 100); g.drawString(tae.field[7][0] + " " + tae.field[7][1] + " " + tae.field[7][2] + " " + tae.field[7][3] + " " + tae.field[7][4] + " " + tae.field[7][5] + " " + tae.field[7][6] + " " + tae.field[7][7] + " " + tae.field[7][8], 100, 120); g.drawString(tae.field[6][0] + " " + tae.field[6][1] + " " + tae.field[6][2] + " " + tae.field[6][3] + " " + tae.field[6][4] + " " + tae.field[6][5] + " " + tae.field[6][6] + " " + tae.field[6][7] + " " + tae.field[6][8], 100, 140); g.drawString(tae.field[5][0] + " " + tae.field[5][1] + " " + tae.field[5][2] + " " + tae.field[5][3] + " " + tae.field[5][4] + " " + tae.field[5][5] + " " + tae.field[5][6] + " " + tae.field[5][7] + " " + tae.field[5][8], 100, 160); g.drawString(tae.field[4][0] + " " + tae.field[4][7] + " " + tae.field[4][2] + " " + tae.field[4][5] + " " + tae.field[4][4] + " " + tae.field[4][3] + " " + tae.field[4][6] + " " + tae.field[4][1] + " " + tae.field[4][8], 100, 180); g.drawString(tae.field[3][0] + " " + tae.field[3][1] + " " + tae.field[3][2] + " " + tae.field[3][3] + " " + tae.field[3][4] + " " + tae.field[3][5] + " " + tae.field[3][6] + " " + tae.field[3][7] + " " + tae.field[3][8], 100, 200); g.drawString(tae.field[2][0] + " " + tae.field[2][1] + " " + tae.field[2][2] + " " + tae.field[2][3] + " " + tae.field[2][4] + " " + tae.field[2][5] + " " + tae.field[2][6] + " " + tae.field[2][7] + " " + tae.field[2][8], 100, 220); g.drawString(tae.field[1][0] + " " + tae.field[1][1] + " " + tae.field[1][2] + " " + tae.field[1][3] + " " + tae.field[1][4] + " " + tae.field[1][5] + " " + tae.field[1][6] + " " + tae.field[1][7] + " " + tae.field[1][8], 100, 240); g.drawString(tae.field[0][0] + " " + tae.field[0][1] + " " + tae.field[0][2] + " " + tae.field[0][3] + " " + tae.field[0][4] + " " + tae.field[0][5] + " " + tae.field[0][6] + " " + tae.field[0][7] + " " + tae.field[0][8], 100, 260); g.dispose(); return Printable.PAGE_EXISTS; } } Zitieren
geloescht_Newlukai Geschrieben 8. Februar 2007 Geschrieben 8. Februar 2007 Ich habe zwar noch nicht mit Java gedruckt, aber es sieht mir so aus, als müßtest Du if(pageIndex >= 2) auf if(pageIndex >= 1) ändern. Zitieren
leiunn Geschrieben 8. Februar 2007 Autor Geschrieben 8. Februar 2007 danke euch ... das mit dem pageindex war tatsächlich der grund. 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.