Hallo,
bin mir nicht sicher ob das das richtige Unterforum für Druckersteuerung ist. Bei Bedarf verschieben.
Ich versuche momentan eine Druckfunktion zu implementieren. Komme damit aber leider nicht wirklich weiter.
Hier ist mal was ich momentan habe. Alles was mit drucken zutun hat ist zusammenkopiert da ich momentan noch im "probier Stadium" bin. ^^
Der Aufruf(drawpanel ist natürlich eine Instanz von DrawPanel):
Die Klasse DrawPanel:
An sich funktioniert es schon. Jedoch nicht wirklich wie ich es gern hätte...
Zum einen wird nur ein Teil von drawpanel gedruckt und außerdem würde ich gerne mehr als nur drawpanel drucken. Es soll noch etwas Text darunter auf die selbe Seite kommen.
Meine Überlegung war jetzt ich erstelle bevor ich einfach drawpanel zum Drucker schicke ein Frame in der Größe von dem was im Druck Dialog ausgewählt wurde und baue dort die ganze Seite zusammen. Das hätte auch gleich den schönen Nebeneffekt das ich eine Vorschau anbieten könnte.
Die Frage ist jedoch wie finde ich raus wie groß das Blatt ist, bzw wie viel Platz ich zum bemalen habe und wie kopiere ich etwas von drawpanel? Oder wäre es besser das gleich im Vorschau Objekt neuzuzeichnen?
LG
P.S.: Wenn jemand eine Buchempfehlung zum Thema zeichnen in Java(glaub das heißt Java2D? Halt das was ich hier tue) dann nur her damit.
bin mir nicht sicher ob das das richtige Unterforum für Druckersteuerung ist. Bei Bedarf verschieben.
Ich versuche momentan eine Druckfunktion zu implementieren. Komme damit aber leider nicht wirklich weiter.
Hier ist mal was ich momentan habe. Alles was mit drucken zutun hat ist zusammenkopiert da ich momentan noch im "probier Stadium" bin. ^^
Der Aufruf(drawpanel ist natürlich eine Instanz von DrawPanel):
Java:
private void butprintActionPerformed(java.awt.event.ActionEvent evt) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(drawpanel);
boolean ok = job.printDialog();
if (ok) {
try {
job.print();
} catch (PrinterException ex) { }
}
}
Die Klasse DrawPanel:
Java:
class DrawPanel extends JPanel implements Printable{
...
@Override
protected void paintComponent( Graphics g ) {
//Hier zeichne ich etwas. Das soll eben ausgedruckt werden.
}
...
@Override
public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
if (page > 0) {
return NO_SUCH_PAGE;
}
paintComponent(g);
return PAGE_EXISTS;
}
}
An sich funktioniert es schon. Jedoch nicht wirklich wie ich es gern hätte...
Zum einen wird nur ein Teil von drawpanel gedruckt und außerdem würde ich gerne mehr als nur drawpanel drucken. Es soll noch etwas Text darunter auf die selbe Seite kommen.
Meine Überlegung war jetzt ich erstelle bevor ich einfach drawpanel zum Drucker schicke ein Frame in der Größe von dem was im Druck Dialog ausgewählt wurde und baue dort die ganze Seite zusammen. Das hätte auch gleich den schönen Nebeneffekt das ich eine Vorschau anbieten könnte.
Die Frage ist jedoch wie finde ich raus wie groß das Blatt ist, bzw wie viel Platz ich zum bemalen habe und wie kopiere ich etwas von drawpanel? Oder wäre es besser das gleich im Vorschau Objekt neuzuzeichnen?
LG
P.S.: Wenn jemand eine Buchempfehlung zum Thema zeichnen in Java(glaub das heißt Java2D? Halt das was ich hier tue) dann nur her damit.