Udskrif JTextArea til printer....
hejsa..Jeg har lavet et lille program der udskriver en enkelt linie (JTextField) til printeren, og den virker....
Hvis jeg udskrifter min JtextField med JTextArea virker den også, men jeg kunne godt tænke mig at få linieskiftene med.... Nogen der har en løsning eller nogle links hvor jeg kan hente noget inspiration...
Min nuværende kode...
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.awt.geom.*;
import java.awt.print.*;
public class PrintTest extends JPanel
{
final static JButton printButton = new JButton("Udskriv");
final static JButton exitButton = new JButton("Luk");
public static JTextField printInput = new JTextField(" ");
public static JTextArea printArea = new JTextArea(" ");
static String printTekst = "Skriv tekst her";
public PrintTest()
{
PrintTestActionListener aktivLytter = new PrintTestActionListener();
printButton.addActionListener(aktivLytter);
exitButton.addActionListener(aktivLytter);
}
public static void main(String[] args)
{
JFrame printVindue = new JFrame();
JPanel printPanel = new JPanel();
// printPanel.add(printArea);
printPanel.add(printInput);
printPanel.add(printButton);
printPanel.add(exitButton);
printVindue.getContentPane().add(BorderLayout.NORTH, printPanel);
printVindue.getContentPane().add( BorderLayout.CENTER, new PrintTest() );
printVindue.setSize(300, 70);
printVindue.show();
}
private class PrintTestActionListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
Object source = event.getSource();
if (source == printButton)
{
setPrintTekst(printInput.getText());
skrivUd();
}
if (source == exitButton){lukProgram();}
}
}//end inner-class PrintTestActionListener
public void skrivUd()
{
PrinterJob job = PrinterJob.getPrinterJob();
Book udskriftJob = new Book();
udskriftJob.append(new PaintCover(), job.defaultPage());
job.setPageable(udskriftJob);
if (job.printDialog())
{
try{job.print();}
catch (Exception exc){System.exit(0);}
}
}
private void lukProgram()
{
System.exit(0);
}
private void setPrintTekst(String a)
{
printTekst = a;
}
public static String getPrintTekst()
{
return printTekst;
}
} //End class PrintTest
class PaintCover implements Printable
{
public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException
{
Font skriftType = new Font("Helvetica-Bold", Font.PLAIN, 16);
g.setFont(skriftType);
g.setColor(Color.black);
g.drawString(PrintTest.getPrintTekst(), 70, 180);
return Printable.PAGE_EXISTS;
}
}
-Anders
