Код: Выделить всё
public PageFormat getPageFormat(PrinterJob pj) {
//PageFormat pf = new PageFormat();
PageFormat pf = pj.getPageFormat(getPrintAttributes());
Paper paper = pf.getPaper();
paper.setSize(pw_PX, ph_PX);
paper.setImageableArea(plm_PX, // left margin
ptm_PX, // top margin
piw_PX,
pih_PX
);
// Set orientation and paper
pf.setOrientation(PageFormat.PORTRAIT);
pf.setPaper(paper);
pj.setPrintable(this);
return pf;
}
// ***************** creating media format
// @return
public HashPrintRequestAttributeSet getPrintAttributes() {
printAttributes = new HashPrintRequestAttributeSet();
printAttributes.add(new MediaPrintableArea(
plm_MM, ptm_MM,
piw_MM, pih_MM,
MediaPrintableArea.MM));
return printAttributes;
}
< /p>
Ширина страницы получена из использования в MM, а высота рассчитывается в соответствии с данными таблицы.
При ширине 58 мм она работает нормально, но не на более высокой ширине.
Что именно такое проблема здесь. Кто -нибудь может помочь? < /p>
Я использую метод переопределенного печати в классе печати для печати на бумаге < /p>
'' '< /p>
Код: Выделить всё
@Override
public int print(Graphics g, PageFormat pf, int page) throws
PrinterException {
if (page > 0) {
return NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(KEY_TEXT_ANTIALIASING, VALUE_TEXT_ANTIALIAS_ON);
g2d.translate(pf.getPaper().getImageableX(),
pf.getPaper().getImageableY());
int y = 0;
//draw headers
y += h1Height;
g2d.setFont(h1Font);
y = drawCenteredString(g2d, companyName, 0, y, (int) piw_PX);
...
(...code goes on to print more)
Подробнее здесь: https://stackoverflow.com/questions/794 ... paper-size
Мобильная версия