# YKPrinterIDcard **Repository Path**: kezhangzhao/YKPrinterIDcard ## Basic Information - **Project Name**: YKPrinterIDcard - **Description**: 打印机、身份证阅读器(天波、研科) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-08-17 - **Last Updated**: 2024-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YKPrinterIDcard #### 介绍 打印机、身份证阅读器(天波、研科) #### 依赖 1. allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 2. dependencies { implementation 'com.gitee.kezhangzhao:YKPrinterIDcard:v1.0.0' } #### 使用说明 1. 证件阅读器:(天波、研科;适合机型:D2、C1) private YKIDCardManager mYKIDCardManager; mYKIDCardManager = new YKIDCardManager(this, new IDCardResultListener() { @Override public void result(IdCard mIdCard, IdentityMsg info) { try { byte[] image = mIdCard.getIdCardImageOverseas(info); if (image.length == 2048 || image.length == 1024) { bitmap = mIdCard.decodeIdCardImageOverseas(image); } tvText.setText( getString(R.string.idcard_xm) + info.getName() + "\n\n" + getString(R.string.idcard_xb) + info.getSex() + "\n\n" + getString(R.string.idcard_csrq) + info.getBorn() + "\n\n" + getString(R.string.idcard_country) + getString(R.string.idcard_yxqx) + info.getPeriod() + "\n\n" + getString(R.string.idcard_qzjg) + info.getApartment() + "\n\n" + getString(R.string.idcard_sfhm) + info.getNo() + "\n\n"); ivHead.setImageBitmap(bitmap); info.setHead_photo(null);//不打印头像流 Log.d("身份证信息", new Gson().toJson(info)); } catch (TelpoException e) { e.printStackTrace(); } } }); //单次读取身份证信息 mYKIDCardManager.readInfo(); //循环读取身份证信息 mYKIDCardManager.readLoop(); //停止循环读取身份证信息 mYKIDCardManager.stopReadThread(); //释放资源 @Override protected void onDestroy() { super.onDestroy(); if (mYKIDCardManager != null) mYKIDCardManager.releaseIDCard(); } 2. D2、C1打印机 package com.example.ykprinteridcard; import android.app.ProgressDialog; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.Toast; import com.example.yanke.printer.YKPrinterListener; import com.example.yanke.printer.YKPrinterManager; import com.example.yanke.printerc1.YKPrinterC1Listener; import com.example.yanke.printerc1.YKPrinterC1Manager; import com.szsicod.print.escpos.PrinterAPI; import com.telpo.tps550.api.TelpoException; import com.telpo.tps550.api.printer.UsbThermalPrinter; import java.io.UnsupportedEncodingException; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; /** * Created By kzz on 2021/8/16 * Describe: 打印 */ public class PrinterActivity extends AppCompatActivity { private ProgressDialog progressDialog; private YKPrinterManager mYKPrinterManager; private YKPrinterC1Manager mYKPrinterC1Manager; private EditText editText; private static String printContent1 = "终端编号:CL001\n" + "交易流水:201908122053320\n" + "供应商名称:【测试-供应商】自营-知更鸟供应商\n" + "分销商来源:知更鸟\n" + "\n" + "商品名称:打印测试\n" + "商品单价:1.0\n" + "证件号码:430224199003163618\n" + "凭证号码:99022260924977\n" + "本次消费总价:1.0\n" + "手 机 号:18665980929\n" + "打印时间:2019-08-12 20:53:32\n" + "\n" + "----------------------------\n" + "【测试-业务运营商】知更鸟5A景区欢迎您光临\n" + "----------------------------"; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_printer); editText = findViewById(R.id.etContext); mYKPrinterManager = new YKPrinterManager(this); mYKPrinterC1Manager = new YKPrinterC1Manager(this); } public void printer(View view) { if (!TextUtils.isEmpty(editText.getText())) mYKPrinterManager.startPrinter(new YKPrinterListener() { @Override public void printBefore() { if (progressDialog == null || !progressDialog.isShowing()) progressDialog = ProgressDialog.show(PrinterActivity.this, "打印", "打印中,请稍候……"); } @Override public void printing(UsbThermalPrinter mPrinter) throws TelpoException { mPrinter.reset(); // mPrinter.walkPaper(15); // mPrinter.setAlgin(UsbThermalPrinter.ALGIN_LEFT); // mPrinter.setLeftIndent(leftDistance);//(左边距最大0-255) // mPrinter.setLineSpace(lineDistance);//(行距距最大0-255) // mPrinter.setBold(isBold);//是否粗体 // mPrinter.setTextSize(wordFont);//(字体大小8-64) mPrinter.setGray(7);//打印黑色程度(0-7) mPrinter.addString(editText.getText().toString()); mPrinter.printString(); mPrinter.walkPaper(20); } @Override public void printComplete() { if (progressDialog != null && !isFinishing()) { progressDialog.dismiss(); progressDialog = null; } Log.d("YKPrinterManager", "关闭打印弹窗"); } @Override public void printError(String msg) { Toast.makeText(PrinterActivity.this, msg, Toast.LENGTH_SHORT).show(); } }); else Toast.makeText(this, "请输入打印内容", Toast.LENGTH_SHORT).show(); } public void printerC1(View view) { if (!TextUtils.isEmpty(editText.getText())) mYKPrinterC1Manager.startPrinter(new YKPrinterC1Listener() { @Override public void printBefore() { if (progressDialog == null || !progressDialog.isShowing()) progressDialog = ProgressDialog.show(PrinterActivity.this, "打印", "打印中,请稍候……"); } @Override public void printing(PrinterAPI mPrinter) throws UnsupportedEncodingException { mPrinter.init(); mPrinter.setFontStyle(0); mPrinter.setAlignMode(UsbThermalPrinter.ALGIN_MIDDLE); mPrinter.printString(editText.getText().toString()); mPrinter.printAndFeedLine(5); } @Override public void printComplete() { if (progressDialog != null && !isFinishing()) { progressDialog.dismiss(); progressDialog = null; } } @Override public void printError(String msg) { Toast.makeText(PrinterActivity.this, msg, Toast.LENGTH_SHORT).show(); } }); else Toast.makeText(this, "请输入打印内容", Toast.LENGTH_SHORT).show(); } public void testText(View view) { editText.setText(""); editText.setText(printContent1); } public void clearText(View view) { editText.setText(""); } @Override protected void onDestroy() { super.onDestroy(); if (mYKPrinterManager!=null) mYKPrinterManager.releasePrint(); if (mYKPrinterC1Manager!=null) mYKPrinterC1Manager.releasePrint(); } }