【发布时间】:2013-10-26 06:25:54
【问题描述】:
我需要打印一个文本,例如“产品名称”到标签,由 300 dpi 标签打印机打印,来自 JAVA。 字体为宋体。字体大小 6。 如何计算文本的宽度(以 mm 为单位)?
String fontName = "Arial";
int fontSize = 6;
String string = "Product name";
Font font = new Font(fontName, Font.PLAIN, fontSize);
Canvas c = new Canvas();
FontMetrics fm = c.getFontMetrics(font);
int i = fm.stringWidth(string);
在上面的代码中,i=36。但是“36”是什么意思?使用 300DPI 打印机打印在标签上时,如何获得以毫米为单位的宽度?
【问题讨论】:
-
您尝试过的代码在哪里?
-
我试过了,但对 graphics2D 感到困惑: String str = "Hello World";字体 font = new Font("Arial", 0, 6); Graphics2D ig2; BufferedImage bi = new BufferedImage(150, 100, BufferedImage.TYPE_INT_ARGB); ig2 = bi.createGraphics(); Rectangle2D r2D = font.getStringBounds(str, ig2.getFontRenderContext());
-
请edit您的问题包含代码。
标签: java