I want to print a Canvas with a picture (gif) directly from a frame.
So I use a Printjob, but it does not work on both of my linux-systems.
After the frame Print Dialog, I get a frame "Print Error" with
the message : Could not execute pring command (L_java.lang.String...)
If I write the output to a file and pipe it into lpr it works, but it
is no solution.
I append the Java-Source Krankenschein_Test.java
I hope someone can help me!
Reinhard Simon
HTL Wr. Neustadt Abt. EDVO email: [EMAIL PROTECTED]
import java.awt.*;
import java.awt.event.*;
public class Krankenschein_Test extends Frame
implements ActionListener {
Frame frame = null;
private Canvas canvas = null;
Image image = null;
private Toolkit toolkit = null;
private MediaTracker tracker = null;
public static void main (String[] args ) {
new Krankenschein_Test();
}
public Krankenschein_Test() {
super ("Printing Willi");
this.tracker = new MediaTracker (this);
this.frame = this;
this.toolkit = getToolkit();
try {
this.image = toolkit.getImage("kschein.gif");
tracker.addImage (image, 0);
tracker.waitForID (0);
}
catch (InterruptedException is) {
System.out.println ("Fehler beim Laden!");
System.exit (0);
}
setLayout (new BorderLayout ());
addWindowListener (
new WindowAdapter () {
public void windowClosing (WindowEvent e) {
Runtime.getRuntime().exit(0);
}
}
);
Button button = new Button ("Drucken");
button.addActionListener (this);
add ("South", button);
add ("Center", canvas = new Canvas () {
public void paint (Graphics g) {
g.drawImage (image, 0, 0,frame);
}
public Dimension getPreferredSize () {
return new Dimension (100, 80);
}
});
pack();
show ();
}
public void actionPerformed( ActionEvent e) {
PrintJob printJob = toolkit.getPrintJob (this, "Printing Willi", null);
if (printJob != null) {
Graphics printGraphics = printJob.getGraphics ();
if (printGraphics != null) {
frame.printComponents(printGraphics);
// canvas.printAll (printGraphics);
printGraphics.dispose();
}
else System.out.println ("No PrintGraphics");
printJob.end();
}
else System.out.println ("No PrintJob");
}
}
