|
| Udskrift er spejlvendt. Fra : Gruppe5DMUSønderborg |
Dato : 24-05-02 12:01 |
|
Jeg vil lige skrive min GUI ud, men den bliver udskrevet spejlvendt og med
en meget grov skrifttype.
Jeg lægger lige lidt kode ved - er der nogen der har nok styr på udskrifter
i java til at gennemskue problemmet
-----------
import javax.swing.*;
import java.awt.*;
import java.text.*;
import java.awt.event.*;
import java.awt.print.*;
public class OrdreGUI extends JFrame //implements ActionListener
{
private Container c;
private JPanel kunde, bottom;
private Kunde k;
private Ordre o;
private PakkeListeTableModel pakkeTM;
private JButton udskriv;
private JTable pakkeListe;
public OrdreGUI(Kunde k, Ordre o)
{
super("Pakkeliste");
this.k = k;
this.o = o;
uiInit();
}
public void uiInit()
{
c = getContentPane();
c.setLayout(new BorderLayout());
kunde = new JPanel();
kunde.setLayout(new GridLayout(4,1));
kunde.add(new JLabel("Navn: "+k.getFornavn()+" "+k.getEfternavn()));
kunde.add(new JLabel("Adresse: "+k.getAdresse()));
kunde.add(new JLabel("Postnr/By: "+k.getPostnr()+" "+k.getBy()));
kunde.add(new JLabel("Ordrenummer: "+o.getOrdreID()));
udskriv = new JButton("Udskriv");
udskriv.addActionListener(new java.awt.event.ActionListener()
{
public void
actionPerformed(ActionEvent e)
{
System.out.print("Udskriv
trykket");
try
{
performPrint();
}
catch( Exception PrintException )
{
}
}
});
pakkeTM = new PakkeListeTableModel( o );
pakkeListe = new JTable(pakkeTM);
bottom = new JPanel(new GridLayout(2,1));
DecimalFormat dfm = new DecimalFormat("0.##");
bottom.add(new JLabel("Pris i alt: "+dfm.format(o.getTotal())+"
kr."));
bottom.add(udskriv);
c.add(kunde, BorderLayout.NORTH);
c.add(new JScrollPane(pakkeListe), BorderLayout.CENTER);
c.add(bottom, BorderLayout.SOUTH);
this.setSize(400,400);
this.show();
}
protected void performPrint()// udføre de fem Steps til udprintning
{
//Step 1 :nyt printjob
PrinterJob job = PrinterJob.getPrinterJob();
//Step 2: formatere siden der skal udskrives
PageFormat pageFormat = job.pageDialog(new PageFormat());
//Step 3: viser udprintnings vinduet fra printerdriveren
job.printDialog();
// Step 4: kalder MyPrintable
job.setPrintable(OrdreGUI.this);
try
{
// Step 5: udskriver...
job.print();
}
catch( PrinterException pe )
{
};
}
class MyPrintable implements Printable
{
public int print(Graphics g, PageFormat pf, int pi) throws
PrinterException {
if (pi >= 1) {
return Printable.NO_SUCH_PAGE;
}
System.out.println("mybutton print");
Graphics2D g2 = (Graphics2D) g;
g2.translate(pf.getImageableX(), pf.getImageableY());
Font f = new Font("Monospaced",Font.PLAIN,12);
System.out.println (f);
g2.setFont (f);
paint (g2);
return Printable.PAGE_EXISTS;
}
}
}
| |
Dennis T. Holm (24-05-2002)
| Kommentar Fra : Dennis T. Holm |
Dato : 24-05-02 17:29 |
|
"Gruppe5DMUSønderborg" <d00bkv@uv.sdrborges.dk> wrote in message
news:acl6hp$j3q$1@news.net.uni-c.dk...
> Jeg vil lige skrive min GUI ud, men den bliver udskrevet spejlvendt og med
> en meget grov skrifttype.
>
> Jeg lægger lige lidt kode ved - er der nogen der har nok styr på
udskrifter
> i java til at gennemskue problemmet
> -----------
> import javax.swing.*;
> import java.awt.*;
> import java.text.*;
> import java.awt.event.*;
> import java.awt.print.*;
>
> public class OrdreGUI extends JFrame //implements ActionListener
> {
> private Container c;
> private JPanel kunde, bottom;
> private Kunde k;
> private Ordre o;
> private PakkeListeTableModel pakkeTM;
> private JButton udskriv;
> private JTable pakkeListe;
>
> public OrdreGUI(Kunde k, Ordre o)
> {
> super("Pakkeliste");
> this.k = k;
> this.o = o;
>
> uiInit();
> }
>
> public void uiInit()
> {
> c = getContentPane();
> c.setLayout(new BorderLayout());
> kunde = new JPanel();
> kunde.setLayout(new GridLayout(4,1));
> kunde.add(new JLabel("Navn: "+k.getFornavn()+"
"+k.getEfternavn()));
> kunde.add(new JLabel("Adresse: "+k.getAdresse()));
> kunde.add(new JLabel("Postnr/By: "+k.getPostnr()+" "+k.getBy()));
> kunde.add(new JLabel("Ordrenummer: "+o.getOrdreID()));
> udskriv = new JButton("Udskriv");
>
> udskriv.addActionListener(new java.awt.event.ActionListener()
> {
> public void
> actionPerformed(ActionEvent e)
> {
> System.out.print("Udskriv
> trykket");
> try
> {
> performPrint();
> }
> catch( Exception
PrintException )
> {
> }
>
> }
> });
>
> pakkeTM = new PakkeListeTableModel( o );
> pakkeListe = new JTable(pakkeTM);
> bottom = new JPanel(new GridLayout(2,1));
> DecimalFormat dfm = new DecimalFormat("0.##");
> bottom.add(new JLabel("Pris i alt: "+dfm.format(o.getTotal())+"
> kr."));
> bottom.add(udskriv);
> c.add(kunde, BorderLayout.NORTH);
> c.add(new JScrollPane(pakkeListe), BorderLayout.CENTER);
> c.add(bottom, BorderLayout.SOUTH);
> this.setSize(400,400);
> this.show();
> }
>
> protected void performPrint()// udføre de fem Steps til udprintning
> {
> //Step 1 :nyt printjob
> PrinterJob job = PrinterJob.getPrinterJob();
> //Step 2: formatere siden der skal udskrives
> PageFormat pageFormat = job.pageDialog(new PageFormat());
> //Step 3: viser udprintnings vinduet fra printerdriveren
> job.printDialog();
> // Step 4: kalder MyPrintable
> job.setPrintable(OrdreGUI.this);
> try
> {
> // Step 5: udskriver...
> job.print();
> }
> catch( PrinterException pe )
> {
> };
> }
>
>
> class MyPrintable implements Printable
> {
>
> public int print(Graphics g, PageFormat pf, int pi) throws
> PrinterException {
> if (pi >= 1) {
> return Printable.NO_SUCH_PAGE;
> }
>
> System.out.println("mybutton print");
> Graphics2D g2 = (Graphics2D) g;
> g2.translate(pf.getImageableX(), pf.getImageableY());
> Font f = new Font("Monospaced",Font.PLAIN,12);
> System.out.println (f);
> g2.setFont (f);
> paint (g2);
> return Printable.PAGE_EXISTS;
> }
> }
> }
>
>
>
Det er farligt at begynde at lege med java og udskrift på printer. Den
fucker simpelthen nogengang bare op fordi printeren ikke fatter det som java
programmet spytter ud...
Dermed sagt... har nogen gange selv set at noget fornuftigt kode som skulle
give en fornuftig udskrift gav noget være lort som resultat. Så måske er det
printeren, prøv evt. på en anden printer.
MVH.. Dennis T. Holm
| |
Kresten P. Vester (25-05-2002)
| Kommentar Fra : Kresten P. Vester |
Dato : 25-05-02 13:31 |
|
Jeg har også noget kode hvor den skrev det ud korrekt på den samme printer.
(Den udskriver bare kun JTable'et i stedet for)
- Jeg har ikke lige adgang til det herfra, men jeg kan prøve at poste det på
mandag.
| |
|
|