Hey Leute ich hversuch gerade ein Dokument auszudrucken ohne einen Dialog ich hab jetzt den folgenden code gefunden aber jedes mal wenn ich meinen drucker übergeben will kommt die folgende Fehlermeldung und ich weiß nicht warum und hab leider auch nicht wirklich ne antwort im internet gefunden ??
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/jnlp/PrintService
at auftragsverwaltung.Drucken.findPrintService(Drucken.java:76)
at auftragsverwaltung.Drucken.printSomething(Drucken.java:32)
das ist der code wie ich den Druckauftrag aufrufe
die zweite Methode war um rauszufinden wie der drucker genau heißt (hat auch funktioniert)
als ich dann versucht hab den code so zu ändern hat er mir one not geöffnet ?
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/jnlp/PrintService
at auftragsverwaltung.Drucken.findPrintService(Drucken.java:76)
at auftragsverwaltung.Drucken.printSomething(Drucken.java:32)
Java:
package auftragsverwaltung;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import static java.awt.print.Printable.NO_SUCH_PAGE;
import static java.awt.print.Printable.PAGE_EXISTS;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jnlp.PrintService;
/**
*
* @author xom
*/
public class Drucken implements Printable{
public void printSomething(String printerName)
{
//find the printService of name printerName
PrintService ps = findPrintService(printerName);
//create a printerJob
PrinterJob job = PrinterJob.getPrinterJob();
try {
//set the printService found (should be tested)
job.setPrintService((javax.print.PrintService) ps);
} catch (PrinterException ex) {
Logger.getLogger(Drucken.class.getName()).log(Level.SEVERE, null, ex);
}
//set the printable (an object with the print method that can be called by "job.print")
job.setPrintable(this);
try {
//call je print method of the Printable object
job.print();
} catch (PrinterException ex) {
Logger.getLogger(Drucken.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public int print(Graphics g, PageFormat pf, int page) throws PrinterException
{
if (page > 0) { /* We have only one page, and 'page' is zero-based */
return NO_SUCH_PAGE;
}
/* User (0,0) is typically outside the imageable area, so we must
* translate by the X and Y values in the PageFormat to avoid clipping
*/
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
/* Now we perform our rendering */
g.setFont(new Font("Roman", 0, 8));
g.drawString("Hello world !", 0, 10);
return PAGE_EXISTS;
}
public PrintService findPrintService(String printerName)
{
for (javax.print.PrintService service : PrinterJob.lookupPrintServices())
{
if (service.getName().equalsIgnoreCase(printerName))
return (PrintService) service;
}
return null;
}
}
das ist der code wie ich den Druckauftrag aufrufe
Java:
private void Stornieren3ActionPerformed(java.awt.event.ActionEvent evt) {
Drucken d = new Drucken();
d.printSomething("EPSON XP-215 217 Series");
}
private void Ok1ActionPerformed(java.awt.event.ActionEvent evt) {
PrintService [] ps = PrinterJob.lookupPrintServices();
for (int count = 0; count < ps.length; ++count)
{
System.out.println (ps [count].getName());
}
}
die zweite Methode war um rauszufinden wie der drucker genau heißt (hat auch funktioniert)
als ich dann versucht hab den code so zu ändern hat er mir one not geöffnet ?
Java:
private void Ok1ActionPerformed(java.awt.event.ActionEvent evt) {
Drucken d = new Drucken();
PrintService [] ps = PrinterJob.lookupPrintServices();
for (int count = 0; count < 1; ++count)
{
System.out.println (ps [count].getName());
d.printSomething(ps [count].getName());
}
}
Zuletzt bearbeitet: