那位高人能告诉我Vc打印控制在Vc中如何使用EPSON TM210B打印机字库和如何实现esc/pos指令控制票据打印?

解决方案 »

  1.   

    DWORD pcWritten;
    int n, m, i, h; if(!WritePrinter(phPrinter, "\x01B\x040", 3, &pcWritten)) // 打印机复位,但不影响输入缓冲区数据
    return FALSE;

    //WritePrinter(phPrinter, "\x01C\x078\x001", 3, &pcWritten);//高速高密
    //WritePrinter(phPrinter, "\x01B\x03c", 2, &pcWritten); // 当前行单行打印
    WritePrinter(phPrinter, "\x01B\x033\x04", 3, &pcWritten); // 1B 33 n:设定n/180英寸行距,n小于256
    WritePrinter(phPrinter, "\x01B\x043\x0B4", 3, &pcWritten); // 1B 43 n:设定页长为n行,n小于128
    //WritePrinter(phPrinter, "\x01B\x02B\x0E", 3, &pcWritten); // 1B 33 n:设定n/360英寸行距,n小于256
    //WritePrinter(phPrinter, "\x01B\x043\x067", 3, &pcWritten); // 1B 43 n:设定页长为n行,n小于128
    //WritePrinter(phPrinter, "\x01B\x032", 2, &pcWritten); // 1B 32:设定1/6英寸行距
    // 1B 55 n:设定单双向打印,n=0字符双向图形单向、n=1全单向、n=2全双向
    //WritePrinter(phPrinter, "\x01B\x055\x01", 3, &pcWritten);
    //WritePrinter(phPrinter, "\x01C\x026", 2, &pcWritten); // 设置中文打印模式
      

  2.   

    HANDLE phPrinter = NULL; char szPrinter[80];
    char *szDevice,*szDriver,*szOutput;
    // 得到设备字符串存入数组szprinter中
    GetProfileString("windows", "device", ",,,", szPrinter, 80); 
    //Windows2000:HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersoin\Windows\Device
    // szPrinter = "Star CR-3240,winspool,LPT1:"
    // 将设备字符串分解
    if (NULL == (szDevice = strtok(szPrinter,",")) ||
    NULL == (szDriver = strtok(NULL,",")) ||
    NULL == (szOutput = strtok(NULL,",")))
    {
    MessageBox("没有设置打印机。",
    "打印信息", MB_ICONINFORMATION);
    return;
    }

    if (gLibDll == NULL)
    gLibDll = LoadLibrary("PrintDrv.dll");
    if (gLibDll == NULL)
    {
    MessageBox("无法建立打印服务。",
    "打印信息", MB_ICONINFORMATION);
    return;
    } PrintTicket = (PRINTTICKET)GetProcAddress(gLibDll, "PrintTicket");
    PrintTicketBegin = (PRINTTICKETBEGIN)GetProcAddress(gLibDll, "PrintTicketBegin");
    PrintTicketEnd = (PRINTTICKETEND)GetProcAddress(gLibDll, "PrintTicketEnd");

    DOC_INFO_1 info;
    info.pDocName = "DocName";
    info.pOutputFile = szOutput;
    info.pDatatype = NULL;
    if(!OpenPrinter(szPrinter, &phPrinter, NULL))
    MessageBox("没有安装打印机驱动程序。", "打印信息", MB_ICONERROR);
      

  3.   

    这是我以前为客户做的一个软件用到的,我打印放在DLL中的,上面代码
    if (gLibDll == NULL)
    gLibDll = LoadLibrary("PrintDrv.dll");
    if (gLibDll == NULL)
    {
    MessageBox("无法建立打印服务。",
    "打印信息", MB_ICONINFORMATION);
    return;
    } PrintTicket = (PRINTTICKET)GetProcAddress(gLibDll, "PrintTicket");
    PrintTicketBegin = (PRINTTICKETBEGIN)GetProcAddress(gLibDll, "PrintTicketBegin");
    PrintTicketEnd = (PRINTTICKETEND)GetProcAddress(gLibDll, "PrintTicketEnd");
    直接去掉