我正在编写文本编辑器,我的下一个目标是在打印机上打印书面文本(而非sysout)。
我尝试了很多次并且它有效,但是换行被忽略了。
Graphics pg = prjob.getGraphics();
pg.setFont(textFont);
pg.drawString(window.getText(), iPosX, iPosY);
pg.dispose();
我创建了一个新图形并设置了字体。 然后我把写入我编辑窗口的文本。 iPosX& iPosY是纸张的衡量标准。
考虑到换行符,你们有什么想法我可以打印整个字符串吗?
非常感谢先进!
答案 0 :(得分:0)
显然,drawString()
方法不处理换行符。您可以通过在换行符上拆分String并在新行上单独打印每一行来解决此问题。您可以创建一个自定义方法,如下所示:
void drawString(Graphics g, String text, int x, int y) {
String splittedText = text.split("\n");
for (String line : splittedText) {
g.drawString(line, x, y += g.getFontMetrics().getHeight());
}
}
希望它有所帮助!