Drucken eines "Formulars" in abgeänderter Form

D

DerKleineBaer

Gast
Hallo zusammen,

ich schreibe an einem Programm, mit dem ich etwas drucken will.
Ich habe Textfelder, Label und Button im Frame. In die Textfelder gibt der User etwas ein.
Das soll anschließend gedruckt werden können.
Allerdings nicht so, wie es gerade sichtbar ist, sondern in schöner aufbereiteter Weise.
Also beispielsweise sollen anschließend noch weitere Angaben sichtbar sein oder die Textfelder nicht als Textfelder.
Lauter solche Dinge.
Ich habe schon nach Möglichkeiten gesucht, daraus vielleicht ein PDF zu machen, damit man es anschließend ausdrucken kann.
Aber natürlich auch in aufbereiteter Weise.
Ist das irgendwie möglich? Entweder direkt im Programm drucken oder als PDF speichern und dann drucken? Also dass man allgemein drucken kann weiß ich natürlich. Aber wichtig ist eben das veränderte Aussehen des "Formulars".

Viele Grüße
 

André Uhres

Top Contributor
ich schreibe an einem Programm, mit dem ich etwas drucken will.
... Allerdings nicht so, wie es gerade sichtbar ist, sondern in schöner aufbereiteter Weise.

Hallo Bär :D,

wir können einfach eine Druckvorschau machen, so wie wir sie gerade wünschen, und diese dann drucken. Unten findest du ein kleines Beispiel dazu.

Gruß,
André

Java:
/*
 * JavaPrinting.java
 * 
 * needs the class ContainerPrintable.java
 * Here it is:
 * http://wiki.byte-welt.de/wiki/ContainerPrintable
 */

import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import java.util.logging.*;
import javax.print.attribute.*;
import javax.swing.*;

public class JavaPrinting {

    private JFrame frame;
    private JTextField tfBlabla1, tfBlabla2;
    private JDialog previewDialog;
    private PrintPanel printPanel;

    public JavaPrinting() {
    }

    public static void main(final String[] args) {
        Runnable gui = new Runnable() {

            public void run() {
                JavaPrinting javaPrinting = new JavaPrinting();
                javaPrinting.createAndShow();
            }
        };
        SwingUtilities.invokeLater(gui);
    }

    public void createAndShow() {
        frame = new JFrame("JavaPrinting");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        JPanel controlPanel = createControls();
        frame.add(controlPanel, BorderLayout.NORTH);
        JPanel mainPanel = createMainPanel();
        frame.add(mainPanel);
        frame.setVisible(true);
    }

    private JPanel createControls() {
        JPanel panel = new JPanel();
        JButton btPrintPreview = new JButton(new PreviewAction());
        panel.add(btPrintPreview);
        return panel;
    }

    private JPanel createMainPanel() {
        JPanel panel = new JPanel();
        tfBlabla1 = new JTextField("blabla1");
        panel.add(tfBlabla1);
        tfBlabla2 = new JTextField("blabla2");
        panel.add(tfBlabla2);
        return panel;
    }

    private void preview() {
        previewDialog = new JDialog();
        previewDialog.setTitle("Print Preview");
        printPanel = new PrintPanel();
        JScrollPane scroller = new JScrollPane(printPanel);
        scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        previewDialog.add(scroller);
        JPanel controls = new JPanel();
        JButton btPrint = new JButton(new PrintAction());
        controls.add(btPrint);
        previewDialog.add(controls, BorderLayout.NORTH);
        // do the print layout:
        printPanel.addElement(new JLabel("This is my Java Printing!"),
                printPanel.getFont(PrintPanel.FONT0));
        printPanel.addElement(new JLabel(tfBlabla1.getText()),
                printPanel.getFont(PrintPanel.FONT1));
        printPanel.addElement(new JLabel(tfBlabla2.getText()),
                printPanel.getFont(PrintPanel.FONT1));
        previewDialog.add(printPanel, BorderLayout.CENTER);
        //
        previewDialog.setSize(800, 500);
        previewDialog.setLocationRelativeTo(null);
        previewDialog.setVisible(true);
    }

    private class PrintAction extends AbstractAction {

        public PrintAction() {
            putValue(AbstractAction.NAME, "Print...");
        }

        public void actionPerformed(final ActionEvent e) {
            printPanel.print();
        }
    }

    private class PreviewAction extends AbstractAction {

        public PreviewAction() {
            putValue(AbstractAction.NAME, "Preview");
        }

        public void actionPerformed(final ActionEvent e) {
            preview();
        }
    }
}

class PrintPanel extends JPanel {

    public static int FONT0 = 0;
    public static int FONT1 = 1;
    private PrintRequestAttributeSet attr;
    private Font[] fonts = new Font[]{getFont().deriveFont(Font.BOLD, 36f),
        getFont().deriveFont(Font.PLAIN, 18f)};

    public PrintPanel() {
        setLayout(new GridLayout(0, 1));
    }

    public void print() {
        ContainerPrintable.print(getPrintable());
    }

    public Font getFont(final int type) {
        return fonts[type];
    }

    public void addElement(final JComponent comp, final Font font) {
        comp.setFont(font);
        add(comp);
    }

    private Printable getPrintable() {
        Printable printable = new ContainerPrintable(this);
        return printable;
    }
}
 
Zuletzt bearbeitet:

jgh

Top Contributor
nett :)

gibt es eigentlich eine Klasse, die aus Java herraus eine LaTex-Datei in eine Pdf-Datei "kompiliert"
Also ich würde gerne eine gewisse Struktur -Überschriften, Deckblatt, Formatierungen, Nummerierungen etc- wie in einer Latex-Datei erstellen, gewisse Daten aus der Applikation entnehmen und eine LaTex-Datei erstellen, die dann zu einer PDF-Datei kompiliert wird.
 
D

DerKleineBaer

Gast
Also das funktioniert super. :)
Gibt es jetzt auch noch eine Möglichkeit, den preview als PDF zu speichern?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
A Swing Drucken eines JTextPanes AWT, Swing, JavaFX & SWT 7
D 2D-Grafik Problem beim Drucken eines Grafik-Objekts AWT, Swing, JavaFX & SWT 2
T Drucken eines JFrame AWT, Swing, JavaFX & SWT 2
N Nur ein Element sichtbar beim Drucken eines JFrame AWT, Swing, JavaFX & SWT 9
S Drucken eines Panels AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
F JavaFX (Tree)TableView korrekt drucken AWT, Swing, JavaFX & SWT 1
F 2D-Grafik JTextArea drucken bringt mieses Ergebnis AWT, Swing, JavaFX & SWT 2
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
M Swing PDF Datei nach drucken nicht löschbar AWT, Swing, JavaFX & SWT 6
F AWT Drucken verschluckt inhalt AWT, Swing, JavaFX & SWT 1
S JTable im Hoch- und Querformat angepasst drucken AWT, Swing, JavaFX & SWT 1
kaoZ JFrame Drucken AWT, Swing, JavaFX & SWT 8
B Drucken der JTextArea AWT, Swing, JavaFX & SWT 4
Z Drucken AWT, Swing, JavaFX & SWT 2
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
C Swing Drucken von JPanel AWT, Swing, JavaFX & SWT 14
E Drucken von JPanel mit richtiger Skalierung AWT, Swing, JavaFX & SWT 5
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S AWT Drucken aus bestimmtem Papierfach AWT, Swing, JavaFX & SWT 7
S Probleme beim drucken AWT, Swing, JavaFX & SWT 13
M Swing JTable drucken/Darstellung AWT, Swing, JavaFX & SWT 2
W AWT Drucken ohne Druckdialog AWT, Swing, JavaFX & SWT 2
O JTable mit Inhalt drucken AWT, Swing, JavaFX & SWT 3
C Swing Briefe/Dokumente zum Drucken erstellen AWT, Swing, JavaFX & SWT 20
P Jpanel mit Komponenten drucken AWT, Swing, JavaFX & SWT 3
H AWT Oberer Seitenrand kann beim Drucken vom Anwender nicht verstellen werden. AWT, Swing, JavaFX & SWT 6
P Drucken von Jtextpane mit Seitenangabe AWT, Swing, JavaFX & SWT 1
A Probleme beim Drucken AWT, Swing, JavaFX & SWT 5
D Vorabberatung :) Briefe gestalten und drucken (als PDF) AWT, Swing, JavaFX & SWT 3
A Probleme beim Drucken (Seite wird abgeschnitten) AWT, Swing, JavaFX & SWT 2
N JTable: Drucken mit größerer RowHeight AWT, Swing, JavaFX & SWT 2
N JPanel nicht ganz drucken AWT, Swing, JavaFX & SWT 2
A Probleme mit dem Drucken AWT, Swing, JavaFX & SWT 2
K Seite zum drucken einrichten AWT, Swing, JavaFX & SWT 2
F Drucken in Java AWT, Swing, JavaFX & SWT 3
A Problem mit der Seiteneinrichtung beim Drucken AWT, Swing, JavaFX & SWT 7
A Drucken einer JList AWT, Swing, JavaFX & SWT 4
C JTable drucken AWT, Swing, JavaFX & SWT 7
O Panel drucken AWT, Swing, JavaFX & SWT 2
Y Problem beim Drucken AWT, Swing, JavaFX & SWT 2
A Drucken AWT, Swing, JavaFX & SWT 23
H JTable drucken mit Header AWT, Swing, JavaFX & SWT 4
& XHTML drucken mit (oder ohne) Flying Saucer AWT, Swing, JavaFX & SWT 12
C Fenster rücken beim Drucken in den Hintergrund AWT, Swing, JavaFX & SWT 6
& mehrseitige HTML-Dokumente drucken AWT, Swing, JavaFX & SWT 2
ARadauer jtable drucken unter java 1.3 AWT, Swing, JavaFX & SWT 2
B Unsichtbares JPanel drucken. AWT, Swing, JavaFX & SWT 14
C Text drucken? AWT, Swing, JavaFX & SWT 2
V Drucken in Java AWT, Swing, JavaFX & SWT 2
K Drucken von JTextComponenten AWT, Swing, JavaFX & SWT 2
R Drucken unter jdk 1.4 mit JTable AWT, Swing, JavaFX & SWT 11
B Ein großes JTextPane komplett drucken AWT, Swing, JavaFX & SWT 2
I Drucken: Programm stürzt bei AWT, Swing, JavaFX & SWT 7
I Fensterinhalt drucken AWT, Swing, JavaFX & SWT 2
E Drucken von JComponent. AWT, Swing, JavaFX & SWT 4
F Transparent bzw. transfluent(durscheinend) drucken? AWT, Swing, JavaFX & SWT 2
P Idee zum drucken von JTextField und JTable AWT, Swing, JavaFX & SWT 2
O JTable, mehrere Spalten drucken AWT, Swing, JavaFX & SWT 4
orenishii mehrseitig Images anzeigen und drucken SimpleBook.java AWT, Swing, JavaFX & SWT 5
R JPanel drucken AWT, Swing, JavaFX & SWT 5
foobar JTable im Hintergrund drucken AWT, Swing, JavaFX & SWT 2
S Drucken - Bild skalieren AWT, Swing, JavaFX & SWT 2
S JAI und das praktische Drucken AWT, Swing, JavaFX & SWT 4
S Drucken AWT, Swing, JavaFX & SWT 15
S JTable - Drucken AWT, Swing, JavaFX & SWT 10
G HTML aus JEditorPane drucken AWT, Swing, JavaFX & SWT 2
G JPanel drucken AWT, Swing, JavaFX & SWT 2
B componente drucken AWT, Swing, JavaFX & SWT 3
M Ein Bild aus einem Panel drucken? AWT, Swing, JavaFX & SWT 11
G Frage zum Drucken AWT, Swing, JavaFX & SWT 2
V Problem beim drucken AWT, Swing, JavaFX & SWT 4
L swing komponenten Drucken AWT, Swing, JavaFX & SWT 7
G JTextPane drucken AWT, Swing, JavaFX & SWT 2
T JEditorPane-content drucken AWT, Swing, JavaFX & SWT 2
T Drucken des Inhaltes einer JTextArea AWT, Swing, JavaFX & SWT 4
J JTextArea drucken AWT, Swing, JavaFX & SWT 4
@ Erzeugen einer Maske zum drucken AWT, Swing, JavaFX & SWT 2
G Drucken?? AWT, Swing, JavaFX & SWT 4
H JTable drucken AWT, Swing, JavaFX & SWT 4
K JPanel drucken AWT, Swing, JavaFX & SWT 4
P JTable drucken AWT, Swing, JavaFX & SWT 2
B JPanel Drucken AWT, Swing, JavaFX & SWT 1
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben