Uma breve introdução ao ambiente operacional:
Idioma: Java
Ferramenta: Eclipse
Sistema: Windows 7
(O dispositivo de impressão ainda não possui um, portanto, apenas as imagens de visualização podem ser fornecidas)
Recentemente, o projeto precisa imprimir recibos de compras para o shopping. Na vida cotidiana, vamos ao supermercado comprar coisas. Ao verificar, o caixa imprimirá um recibo. Geralmente, o shopping também precisa de uma função tão pequena. A demonstração dada neste artigo é um exemplo de uma impressora térmica de 58 mm. Se for uma impressora de outros tipos de papel, basta ajustar a largura do papel.
teste de pacote; importar java.awt.*; importar java.awt.print.*;/*** Classe de teste da impressora (58mm)* 1. A impressora de destino deve ser definida como a impressora padrão* 2. A largura da página de impressão está relacionada à impressora específica. Geralmente, é a largura do papel de impressão e precisa ser configurado como parâmetros do sistema* 3. A largura de um caractere chinês é de cerca de 12 pontos*/public class PrintTest {public static void main (string [] args) {if (Printerjob.LookUprintServices (). canto, da esquerda para a direita, de cima para baixo, PageFormat.Setorientation (PageFormat.portrait);/* IMPRESSÃO FORMATO DE PÁGINA Configurações*/Paper Paper = new Paper (); // Defina a largura da impressão (fixada, relacionada à impressão específica e altura (Related to the Real Print) Print.Setsize (140, 450); 135, 450); PageFormat.setpaper (papel); // Crie um livro de documentos de impressão = novo livro (); book.append (new Printable () {@Override public int print (Graphics Graphics, PageFormat PageFormat, Int PageIndEx) lança Printexception {if (PageIndEx> 0) {return não_such) font = new font ("安体", font.plain, 5); graphics2d.setfont (font); drawstring (graphics2d, "///////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// 119, 8); font = nova font ("宋体", font.plain, 7); graphics2d.setFont (font); int yindex = 30; int lineHeight = 10; int linewidth = 120; color defaultColor = graphics2d.getColor (); "Consignated: Passerby A", 10, Yindex, Linha de Linha, Linha); Yindex = Casa de Departamento (Graphics2d ", Recebeu Endereço: Buidu Building, No. 10 Shangdi Street, Haidian District, Beijing", 10, Sça de Ferro, Ferlado, Ferlado de Border, Restado de Border, Border), Borderning Strawike = StrawiSty Strawed = StrawiSty. BasicsTroke.cap_butt, basicstroke.join_bevel, 0, novo float [] {4, 4}, 0); graphics2d.SetStroke (AVC); graphics2d.DrawRect (5, 10, 129, Yindex); /////10DDED (1; Font.Bold, 8)); Graphics2d.setColor (DefaultColor); Yindex = Castrado (Graphics2d, "Bilhete de varejo de farmácia de Pequim", 5, Yindex + LineHeight + 20, Linha de Linha, 12); graphics2d.setFont (New Font ("宋体", Font.plain, PLAIN); graphics2d.set (Fonting ("宋体", FONT.PLAIN, Drawstring (Graphics2d, "Operador: Xiaoqing", 5, Yindex + LineHeight + 2, Linha Linheira, Linha); Yindex = Castrado (Graphics2d, "Data: 2017-01-05", 5 + Linewidth/2, Yindex, Linewidth, LineHeex); *2 - 5, Linha de Linha, Linha); Yindex = Castro de Fluga (Graphics2d, "Especificação", (Linha Lwidth/10)*4, Yindex, Linha Linheira, Linha); Yindex = Drawstring (Graphics2d, "Preço unitário" (Linha Linha/10)*8, Yindex, linewidthththththththththththththththth, "Preço unitário", Linewidth/10)*8, yindex, linewidththththththththththththththththth, "preço unitário", linewidth/10)*8, yindex, linewidththththththththththththththththth, "preço unitário", linewidth/10)*. "Quantidade", (Linha Lwidth/10)*10, Yindex, Linha Linheira, Linha); para (int i = 0; i <5; i ++) {Graphics2d.setFont (new Font ("宋体 宋体", Font.Platin, 7); YIndex = Treatina (GRAPHICS2D, "E. 15, (Linha Lwidth/10)*7, 10); Graphics2d.setFont (new Font ("安安", font.plain, 6)); graphics2d.setColor (cinza); yindex = drawstring (graphics2d, "100 tablets/box", 5, yindex + 11, linewidth, lineheight); (Linha Lwidth/10)*8, Yindex, Linha Linha, Linha); Yindex = Castrado (Graphics2d, "2", (Linewidth/10)*10, Yindex, Linewidth, LineHeight); graphics2d.setFont (new Font ("宋体", Font.Plain, 7); Yindex, 5 + Linha largura, Yindex);} Graphics2d.setColor (DefaultColor); Yindex = Casa de Dealtato (Graphics2d, "Nome do membro: Xiaoqing", 5, Yindex + LineHeight * 2, Linewidth, LineHeight); Yindex = Drawstring (Graps2d2D, "Totalhen: LineHeight, LineHeight, Yindex = Yindex + LineHeight * 2, Linewidth, LineHeight); lineHeight);yIndex = drawString(graphics2D, "Total: 55.30", 5, yIndex + lineHeight, lineWidth, lineHeight);yIndex = drawString(graphics2D, "Cash: 100.00", 5, yIndex + lineHeight, lineWidth, lineHeight);yIndex = drawString(graphics2D, "change: 44.70", 5, yIndex + LineHeight, LineWidth, LineHeight); Graphics2d.setFont (new Font ("宋体", Font.Plain, 6)); Graphics2d.setColor (Gray); Yindex = Drawstring (Graphics2d,, Tel: 020-123456, 5, Yindex + LineHu7, Linewidth, linewid, linewid, linewid, linewid, linewid, linewid, linewid, linewid, linewid, linewid, linewid, linewid. "Endereço: Baidu Building, No. 10 Shangdi Street, Distrito Haidiano, Pequim", 5, Yindex + Linha, Linha de Linha, LineHeight); Yindex = Yindex + 20; graphics2d.drawline (0, Page); Printerjob.getPrinterjob (); printPaGeable (livro); Try {Printerjob.print ();} catch (PrinterException e) {e.printStackTrace (); System.out.println ("Print Exception");}} {System.out.println ("Print não pode ser descoberto"); @param text Print text* @param x Print starting point x coordinate* @param y Print starting point y coordinate* @param lineWidth line width* @param lineHeight line height* @return Return to end point y coordinate*/private static int drawString(Graphics2D graphics2D, String text, int x, int y, int lineWidth, int lineHeight){FontMetrics fontMetrics = Graphics2d.getFontMetrics (); if (FontMetrics.StringWidth (Text) <LineWidth) {Graphics2d.DrawString (texto, x, y); retorna y;} else {char [] chars = text.toCharArray (); intwidth = 0; stringBern; i ++) {if ((charswidth + fontmetrics.charwidth (chars [i]))> linewidth) {graphics2d.drawstring (sb.toString (), x, y); sb.setLength (0); y = y + lineHeight; charswidth = FontMetrics.CharWidth (chars [i]); sb.append (chars [i]);} else {charswidth = charswidth + fontmetrics.charwidth (chars [i]); sb.append (chars [i]);}} if (sb.lng ()> 0) {) y); y = y + lineHeight;} retornar y - lineHeight;}}}Resultados em execução:
Visualização de efeito:
Resumir
Simplificando, é para escrever um programa Java, salve o resultado da saída como um arquivo de formato "*.xps" e produzi -lo pela impressora, que é muito simples. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe uma mensagem e aponte. Obrigado amigos pelo seu apoio a este site.