Wiki tutorial containerPrintable

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…:slight_smile:

http://wiki.byte-welt.de/wiki/ContainerPrintable

Das Beispiel ist gedacht, um einen beliebigen, bereits vorhandenen, Container zu drucken. Er kann alles vorstellbare enthalten :smiley:

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();
            }
        });
    }
}```