Printable-hjælp
kære eksperten,Jeg vil gerne print JtextArea ud til min kvitteringsprinter som har størrelse på 8cm. Men jeg kan desværre ikke få det til virke, derfor håber jeg at der er nogle her som kan hjælpe?
jeg har fået et stump kode fra Arne, Den viker fint nok, men den printer desværre kun en del af teksten ud(bredden). f.eks testing, printer den kun "stin" (mangler te og g.)
jeg har prøvet ændre i g2.translate(page.getImageableX(), page.getImageableY()); men sværre hjalp det ikke rigtig noget.
public class PrintTextField extends JFrame {
private JTextField tf;
public PrintTextField() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Text field print");
getContentPane().setLayout(new BorderLayout());
tf = new JTextField(30);
tf.setForeground(Color.RED);
tf.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 22));
getContentPane().add(tf, BorderLayout.CENTER);
JButton btn = new JButton("Print");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
PrinterJob job = PrinterJob.getPrinterJob();
Book bk = new Book();
bk.append(new Printable() {
public int print(Graphics g, PageFormat page, int index) {
Graphics2D g2 = (Graphics2D) g;
g2.translate(page.getImageableX(), page.getImageableY());
tf.paint(g2);
return Printable.PAGE_EXISTS;
}
}, job.defaultPage());
job.setPageable(bk);
if (job.printDialog()) {
try {
job.print();
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
getContentPane().add(btn, BorderLayout.SOUTH);
pack();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new PrintTextField();
f.setVisible(true);
f.setBounds(150, 150, 250, 150);
}
});
}
}