Pengantar singkat untuk lingkungan operasi:
Bahasa: Java
Alat: Eclipse
Sistem: Windows 7
(Perangkat pencetakan belum memilikinya, jadi hanya gambar pratinjau yang dapat disediakan)
Baru -baru ini, proyek perlu mencetak tanda terima belanja untuk mal. Dalam kehidupan sehari -hari, kita pergi ke supermarket untuk membeli barang. Saat memeriksa, kasir akan mencetak tanda terima. Secara umum, mal juga membutuhkan fungsi sekecil itu. Demo yang diberikan dalam artikel ini adalah contoh printer termal 58mm. Jika itu adalah printer dari jenis kertas lainnya, cukup sesuaikan lebar kertas.
Uji Paket; Impor Java.awt.*; import java.awt.print.*;/*** kelas uji printer (58mm)* 1. Printer target harus ditetapkan sebagai printer default* 2. Lebar halaman pencetakan terkait dengan printer spesifik. Ini umumnya lebar kertas pencetakan dan perlu dikonfigurasi sebagai parameter sistem* 3. Lebar karakter Cina adalah sekitar 12 poin*/kelas publik printtest {public static void (string [] args) {if (printerjob.lookupprintservices (). Panjang> 0) {/* print Format*/pageform (). Dimulai dari sudut kiri atas, dari kiri ke kanan, dari atas ke bawah, pageformat.setorientation (pageformat.portrait);/* Pengaturan format halaman cetak*/kertas kertas = kertas baru (); // Atur lebar cetak (tetap, terkait dengan printer spesifik) dan tinggi (terkait dengan cetak konten aktual) kertas. paper.setimageableArea (0, 0, 135, 450); pageformat.setpaper (kertas); // Buat buku dokumen cetak = buku baru (); book.append (cetak baru () {@Override Public Int Print (grafik grafik, pageformat pageformat, pageindex) {pageformat {pageindex) {pageformat {pageindex) {pageindex) {pageindex) {pageformat {pageindex) {pageindex) {pageindex) {pageindex) {pageindex) NO_SUCH_PAGE;} Graphics2d Graphics2d = (Graphics2d) Graphics; font font = font baru ("安体", font.plain, 5); grafik2d.setfont (font); drawstring (graphics2d, "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////// 119, 8); font = font baru ("宋体", font.plain, 7); graphics2d.setFont (font); int yindex = 30; int lineHeight = 10; int linewidth = 120; warna defaultColor = graphics2d.getColor (); warna abu -abu = warna baru (145, 145, 145). "Penerima: Passerby A", 10, Yindex, Linewidth, Lineheight); Yindex = Drawstring (Graphics2d, "Receast Address: Baidu Building, No. 10 Shangdi Street, Haidian District, Beijing", 10, NEWEHEIGHT, LINEWIDTH, LINEWIDTH, LINEHEIGHT); BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL,0,new float[]{4, 4},0);graphics2D.setStroke(stroke);graphics2D.drawRect(5, 10, 129, yIndex);//Drugstore name lineWidth = 129;lineHeight = 8;graphics2D.setFont(new Font("宋体", Font.bold, 8)); graphics2d.setColor (defaultColor); yindex = drawstring (graphics2d, "beijing farmacy retail ticket", 5, yindex + lineheight + 20, linewidth, 12); graphics2d.setfont (font baru ("宋体", font.pl.pl.plain (pllin.) (graphics2) (baru font ("宋体", font.pl.pl.pl. DrawString (Graphics2d, "Operator: Xiaoqing", 5, Yindex + LineHeight + 2, Linewidth, LinheHeight); yindex = drindstring (graphics2d, "Tanggal: 2017-01," yindx = lineWidth/2, yindex, linewidth, lineheight); "yindstring = lineWidth/2, yindex, lineewidth, lineHeight); lineHeight*2 - 5, linewidth, lineHeight); yindex = drawstring (graphics2d, "spesifikasi", (linewidth/10)*4, yindex, linewidth, lineHeight); yindex = drindstring (graphics2d, "unit harga", (linewidth/10)*8, yindex = yindex (graphics2d, "unit price", (linewidth/10)*8, yindex = yindex (graphics2d, "unit price", (linewidth/10)*8, yindex drawString(graphics2D, "quantity", (lineWidth/10)*10, yIndex, lineWidth, lineHeight);for (int i=0; i<5; i++){graphics2D.setFont(new Font("宋体", Font.PLAIN, 7));yIndex = drawString(graphics2D, "E Vitamin B Complex Tablets 100 E Vitamin B Complex Tablets 100 Tablet ", 5, yindex + 15, (linewidth/10)*7, 10); graphics2d.setfont (font baru (" 安安 ", font.plain, 6)); graphics2d.setcolor (abu -abu); yindex = drindstring (graphics2d," 100 tablet/box ", 5, yindex = drindstring (graphics2d," 100 tablet/box ", 5, yindex = lINEWRING (graphics2d," 100 tablet/box ", 5, yindex = lINEWRING (graphics2d," 100 tablet/box ", 5, yindex = lINEWRING (graphics2d," 100 tablet/box ", 5, yindex = drawString(graphics2D, "14.50", (lineWidth/10)*8, yIndex, lineWidth, lineHeight);yIndex = drawString(graphics2D, "2", (lineWidth/10)*10, yIndex, lineWidth, lineHeight);graphics2D.setFont(new Font("宋体", Font.PLAIN, 7));yIndex = yIndex + 2;graphics2D.drawLine(5, yIndex, 5 + lineWidth, yIndex);}graphics2D.setColor(defaultColor);yIndex = drawString(graphics2D, "Member Name: Xiaoqing", 5, yIndex + lineHeight * 2, lineWidth, lineHeight);yIndex = drawString(graphics2D, "Total: 6 ", 5, yindex + lineHeight, linewidth, lineHeight); yindex = drawstring (grafik2d," total: 55.30 ", 5, yindex + lineHeight, linewidth, lineHeight); yindex = drawstring (graphics2d," tunai: 100.00 ", 5, yindex = lineHe. DrawString (Graphics2d, "Ubah: 44.70", 5, Yindex + Lineheight, Linewidth, Lineheight); Graphics2d.setfont (font baru ("宋体", font.Plain, 6)); Graphics2d.setColor (Grey); Yindex = Drawstring (Graphics2d, "TelsetColor (Grey); Yindex = Drawstring (Graphics2d," Telsetcolor (Grey); Yindex = Drawstring (Graphics2d, "Linex2d: Yindex = Yindex = Drawstring (Graphics2d," 2, linewidth, lineHeight); yindex = drawstring (graphics2d, "Alamat: Baidu Building, No. 10 Shangdi Street, Haidian District, Beijing", 5, Yindex + Lineheight, Linewidth, Lineheight); Yindex = Yindex + 20; Graphics2d.Drawline (0, Yindex = Yindex = Yindex + Graphics2d.Drawline (0, Yindex = Yindex = YINDEX2; Graphics2d.Drawline (0, Yindex = Yindex = Yindex + Graphics2d.Drawline (0, YINDEX = YINDEX = YINDEX2; Graphics2d.Drawline); Page_exists;}}, pageformat); // Dapatkan printerjob printer printerjob = printerjob.getPrinterJob (); printpageable (buku); coba {printerjob.print ();} catch (printerException e) {e.printstack (); uccyl (excception {e.printstack (); uccception (except (e.printstack (); uccception {E.printStack (); System.uxception) {e.printstack (); System. else{System.out.println("Print service cannot be discovered");}}/** * String output* @param graphics2D brush* @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, Teks String, int x, int y, int linewidth, int lineHeight) {fontMetrics fontMetrics = graphics2d.getFontMetrics (); if (fontmetrics.stringwidth (teks) <lineWidth) {graphics2d.drawstring (teks, x, y) <lineWidth) {graphics2d.drawstring (teks, x, y) <lineWidth) {graphics text.toCharArray();int charsWidth = 0;StringBuffer sb = new StringBuffer();for (int i=0; i<chars.length; 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.length ()> 0) {graphics2d.drawstring (sb.toString (), x, y); y = y + lineHeight;} return y - lineHeight;Hasil Menjalankan:
Pratinjau Efek:
Meringkaskan
Sederhananya, ini adalah untuk menulis program Java, menyimpan hasil output sebagai file format "*.xps" , dan menghasilkannya dengan printer, yang sangat sederhana. Semoga ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan pesan dan tunjukkan. Terima kasih teman atas dukungan Anda untuk situs ini.