package com.hh.lib_base_print;

import com.hh.lib_base_print.bean.AmpeRequestPrintBean;
import com.hh.lib_base_print.bean.PrintBean;
import com.hh.lib_base_print.bean.PrintContentBean;
import com.hh.lib_base_print.callback.OnPrintBaseListener;
import com.hh.lib_base_print.callback.PrintInitResultCallback;

import java.util.List;

/**
 * Description: $
 *
 * @author xwh
 * time 2024/9/18
 **/
public abstract class BasePrinter {

 public BasePrinter() {
 }

 public abstract  void initPrint(PrintInitResultCallback printInitResultCallback);

    /**
     * 打印文字
     * @param text
     * @param align
     * @param textSize
     * @param isBold
     */
   public abstract void printText(String text,int align,int textSize,boolean isBold);


    /**
     * 打印条形码
     * @param text
     */
    public abstract void printBarCode(String text,int width,int height);

    /**
     * 打印二维码
     */
    public abstract  void printQrCode(String text,int width,int height);

    /**
     * 打印图片
     * @param base64
     */
    public abstract void printBitmap(String base64,int width,int height);

    //------------------------------------------------MlaFCDD215 独有方法--------------------------------------------------------//
    /**
     * MlaFCDD215 打印bitmap
     * @param printConfigDTO
     */
    public  void printBitmap(PrintBean.PrintConfigDTO printConfigDTO,String base64,int width,int height){

    }


    /**
     * MlaFCDD215 打印PDF
     * @param printConfigDTO
     */
    public  void printPDF(PrintBean.PrintConfigDTO printConfigDTO,String localPath){

    }

    //------------------------------------------------MlaFCDD215--------------------------------------------------------//

    /**
     * 走纸
     * 打印空行
     */
    public abstract  void feed(int line);

    /**
     * 切纸
     */
    public abstract void cutPaper();

    /**
     * 打印机取消连接
     */
    public abstract void disconnect();

    /**
     * 开始打印
     */
    public abstract void startPrint(AmpeRequestPrintBean printBean,  OnPrintBaseListener listener) ;
}
