Kann mir jemand sagen wie ich den Container fülle, der in diesem Tutorial ausgedruckt werden soll? Kann ich den Container mit einem Image füllen oder evtl. sogar mit Text?
Ein Link zu dem Tutorial wäre hilfreich. Nicht jeder hat Zeit, das Wiki zu durchsuchen…
http://wiki.byte-welt.de/wiki/ContainerPrintable
Das Beispiel ist gedacht, um einen beliebigen, bereits vorhandenen, Container zu drucken. Er kann alles vorstellbare enthalten
Kann mir jemand ein ausführliches Beispiel geben wie man mittels containerPrintable einen Text und ein Image druckt?
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import javax.swing.*;
public class ReportDemo {
private static PrintRequestAttributeSet attr;
public ReportDemo() {
try {
// fetch the printable
JPanel container = new JPanel();
container.add(new JTextField("Test"));
container.add(new JLabel(new ImageIcon("...")));//hier den Pfad zum Bild angeben!
JDialog d = new JDialog();
d.add(container);
d.pack();
Printable printable = new ContainerPrintable(container);
//
PrinterJob job = PrinterJob.getPrinterJob();// fetch a PrinterJob
job.setPrintable(printable);// set the Printable on the PrinterJob
// create an attribute set to store attributes from the print dialog
if (attr == null) {
attr = new HashPrintRequestAttributeSet();
customizeAttributeSet();
}
// display a print dialog and record whether or not the user cancels it
boolean printAccepted = job.printDialog(attr);
if (printAccepted) {// if the user didn't cancel the dialog
// if the user didn't cancel the dialog
job.print(attr); // do the printing
}
} catch (PrinterException ex) {
ex.printStackTrace();
} finally {
System.exit(0);// Demo beenden!
}
}
private static void customizeAttributeSet() {
attr.add(MediaSizeName.ISO_A4);
attr.add(OrientationRequested.PORTRAIT);
MediaSize mediaSize = MediaSize.ISO.A4;
float mediaWidth = mediaSize.getX(Size2DSyntax.MM);
float mediaHeight = mediaSize.getY(Size2DSyntax.MM);
float printableX = 10;
float printableY = 10;
float printableWidth = (mediaWidth - (2 * printableX));
float printableHeight = (mediaHeight - (2 * printableY));
MediaPrintableArea printableArea = new MediaPrintableArea(
printableX, printableY,
printableWidth, printableHeight, Size2DSyntax.MM);
attr.add(printableArea);
}
public static void main(final String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ReportDemo();
}
});
}
}```