Witam, mam problem z drukowaniem. Stworzyłem prosty raport, który chce drukować bezpośrednio na drukarce. Wszystko grało do momentu pojawienia się nowej drukarki - gdzie wydruk nie mieści się na kartce - jest dwa razy większy. Mam klasę implementującą interfejs Printeable. W niej metoda print:
@Override
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
[...]
Graphics2D g2d = (Graphics2D)g;
g2d.translate((int) pf.getImageableX(), (int) pf.getImageableY());
width = (int) pf.getImageableWidth();
height = (int) pf.getImageableHeight();
g2d.setClip(0, 0, width, height);
[...]
W przypadku testowania drukarki na PDFPrinterze też widać różnicę w wydruku dla 300dpi i 600dpi. Gdy dla 600dpi jest ok - to 300dpi wydruk jest dwa razy większy i także nie mieści sie na kartce. Sprawę skalowania załatwi g2d.scale( xfactor, yfactor) - ale jak obliczyć właśnie factor - jak znaleźć dpi dla obecnego PrintJob?. Czy miał ktoś podobne problemy jeśli chodzi o drukowanie?
Pozdrawiam...