Potřebuji vytisknou obsah jTextArea přesně tak, jak jej tato komponenta zobrazuje. Poskládal jsem si kód z různých fragmentů co jsem našel a pochopil na internetu, ale nefunguje správně. Nevím, kde dělám chybu, tak pokud by mi někdo poradil. Dovolím si přidat příslušnou část kódu:
private void vytisknoutFakturu() {
Printable pt = new Printable() {
public int print(Graphics g, PageFormat pageFmt, int index) throws PrinterException {
if (index != 0)
return NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D) g;
g2.translate(pageFmt.getImageableX(), pageFmt.getImageableY());
JComponent c = jTextArea1;
RepaintManager mgr = RepaintManager.currentManager(c);
boolean db = mgr.isDoubleBufferingEnabled();
mgr.setDoubleBufferingEnabled(false);
c.print(g2);
mgr.setDoubleBufferingEnabled(db);
return PAGE_EXISTS;
}
};
doPrint(pt);
}
protected void doPrint(Printable pt) {
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(pt);
try {
pj.print();
}
catch (PrinterException e) {
jOptionPane1.showMessageDialog(null,
"Při tisku došlo k chybě: " + e.getMessage(),
"Chyba", JOptionPane.ERROR_MESSAGE);
}
}
Budu vděčný za každou radu.