Ich versuche, von meiner Java-Anwendung auf einen Belegdrucker zu drucken, die Breite des Belegs ist 58mm, scheint es, dass der Rand falsch ist und mit einem Rand von 1 Zoll auf jeder Seite. Dies führt dazu, dass nur 3 Buchstaben/Zahlen gedruckt werden und nicht die vollständige Zeile. Ich kann vom Notizblock erfolgreich drucken, da ich den Rand zu 1.97mm auf jeder Seite manuell justiert habe, der den Trick zu tun scheint.Java: Einstellung druckbare Breite (Pageformat)
Mein Code ist wie folgt;
public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException {
Font font = new Font("MONOSPACED", Font.PLAIN, 10);
FontMetrics metrics = g.getFontMetrics(font);
int lineHeight = metrics.getHeight();
if (pageBreaks == null) {
initTextLines();
int linesPerPage = (int)(pf.getImageableHeight()/lineHeight);
int numBreaks = (textLines.length-1)/linesPerPage;
pageBreaks = new int[numBreaks];
for (int b=0; b<numBreaks; b++) {
pageBreaks[b] = (b+1)*linesPerPage;
}
}
if (pageIndex > pageBreaks.length) {
return NO_SUCH_PAGE;
}
/* User (0,0) is typically outside the imageable area, so we must
* translate by the X and Y values in the PageFormat to avoid clipping
* Since we are drawing text we
*/
Graphics2D g2d = (Graphics2D)g;
g2d.setFont(new Font("MONOSPACED", Font.PLAIN, 10));
g2d.translate(pf.getImageableX(), pf.getImageableY());
/* Draw each line that is on this page.
* Increment 'y' position by lineHeight for each line.
*/
int y = 0;
int start = (pageIndex == 0) ? 0 : pageBreaks[pageIndex-1];
int end = (pageIndex == pageBreaks.length)
? textLines.length : pageBreaks[pageIndex];
for (int line=start; line<end; line++) {
y += lineHeight;
g.drawString(textLines[line], 0, y);
}
/* tell the caller that this page is part of the printed document */
return PAGE_EXISTS;
}
ich auch dankbar wäre, wenn Sie mich richten Sie den Text auf der rechten Seite des Eingangs mit aus anderen Systemen in Uniform halten helfen könnte, aber mein Hauptproblem ist die Marge, wenn das ich sortiert werden sei über den mond :)
Danke!
p.s. Ich bin neu zum Drucken von Java und habe gekämpft, möglicherweise redundanten Code aus dem Kopieren von Online-Quellen. Ich habe die Schriftart so angepasst, dass sie kleiner ist, das hat nicht viel geholfen.