条码通用库PLLB

    ~g2fk;
    /******************************************************************************
     Module: BWIN-CAPI.TXT
             All commands for PPLB in Dynamic Link Library for Windows
    Notices: Copyright (c) 1998-2004 ARGOIMPREX
    Version: 3.04BW 2005/12/07
    ******************************************************************************/
    目錄
    ===============================================================================
    B_Bar2d_Maxi()            => 印出一個 Maxi Code 2D Barcode。
    B_Bar2d_PDF417()        => 印出一個 PDF-417 2D Barcode。
    B_Bar2d_PDF417_N()        => 印出一個 PDF-417 2D Barcode。
    B_ClosePrn()            => 關閉 Printer 工作。
    B_CreatePrn()            => 開啟 Printer 工作。
    B_Del_Form()            => 刪除 Form (表格)。
    B_Del_Pcx()            => 刪除 Form (表格)。
    B_Draw_Box()            => 畫一個框。
    B_Draw_Line()            => 畫一條線。
    B_Error_Reporting()        => 開啟或關閉錯誤回傳功能。
    B_Get_DLL_Version()        => 取得或秀出此函數庫版本資訊。
    B_Get_DLL_VersionA()        => 取得或秀出此函數庫版本資訊。
    B_Get_Graphic_ColorBMP()    => 轉換 BMP 圖檔彩色變灰階,並將圖形儲存在印表機內的 RAM。
    B_Get_Pcx()            => 列印一個圖形並將圖形儲存在印表機內的 Memory。
    B_Initial_Setting()        => 前置處理。
    B_Load_Pcx()            => 列印一個圖形。
    B_Open_ChineseFont()        => 開啟使用中文點矩陣字型檔案 (16*15 和 24*24)。
    B_Print_Form()            => 列印一個 FORM (表格),並輸入 FORM 所有變數、計數資料。
    B_Print_MCopy()            => 列印所有資料和加上跳號複製功能。
    B_Print_Out()            => 列印所有資料。
    B_Prn_Barcode()            => 印出一個條碼和加上跳號功能。
    B_Prn_Configuration()        => 列印印表機內部配置。
    B_Prn_Text()            => 印出一行文字和加上跳號功能。
    B_Prn_Text_Chinese()        => 印出一行文字,使用中文點矩陣字型檔案 (16*15 或 24*24)。
    B_Prn_Text_TrueType()        => 印出一行 True Type Font 文字。
    B_Prn_Text_TrueType_W()        => 印出一行 True Type Font 文字,並控制字型的寬及高。
    B_Select_Option()        => 設定轉印模式、啟動 Cutter 或 Peel。
    B_Select_Symbol()        => 符號設定選擇。
    B_Set_Backfeed()        => 啟動 Back feed。
    B_Set_BMPSave()            => 儲存影像圖檔。
    B_Set_Darkness()        => 設定熱感頭列印熱度。
    B_Set_DebugDialog()        => 設定除錯環境。
    B_Set_Direction()        => 設定列印方向。
    B_Set_Form()            => 儲存並列印 FORM (表格)。
    B_Set_Labgap()            => 同時設定標籤長度及 GAP 長度。
    B_Set_Labwidth()        => 設定標籤寬度。
    B_Set_Originpoint()        => 設定開始列印點。
    B_Set_Prncomport()        => 設定 Serial Port。
    B_Set_Prncomport_PC()        => 設定 PC 序列埠。
    B_Set_Speed()            => 設定列印速度。
    B_Set_ProcessDlg()        => 開啟或關閉進度對話框
    B_GetUSBBufferLen()    => 查詢 USB 埠資料長度
    B_EnumUSB()            => 取得 USB 埠的資料
    B_CreateUSBPort()    => 使用 USB 埠進行傳輸
        
    *******************************************************************************
    注意事項
    ===============================================================================
    使用方法:將 WINPPLB.DLL 加入 \\Windows\system\ 或 \\???\ 執行中路徑,
              才能被搜尋到。

    *******************************************************************************
    B_GetUSBBufferLen()
    B_EnumUSB()
    ===============================================================================
    功能:    取得 USB Printer 的資料。

    語法:    int B_GetUSBBufferLen();
            int B_EnumUSB(char *buf);

    參數:    char *buf;    ●儲存 USB Printer 資料。


    傳回值:    B_GetUSBBufferLen(); 傳回 USB 的資料長度
                B_EnumUSB()    0 -> OK.
                            Reference AW-Error.txt file.

    範例:    char *buf;
            int    nLen = B_GetUSBBufferLen()+1;
            buf = malloc(nLen);
            memset(buf, 0, nLen);
            B_EnumUSB(buf);

    說明:    這兩個函數是一組的函數。先用 B_GetUSBBufferLen() 取得 USB 傳輸埠的資料
            長度, 然後再配記憶體給 B_EnumUSB() 儲存 USB 埠的資料。USB 埠的資料是以
            ("0x0d0x0a")做分隔,舉例來說, 如果資料是 A-200(0x0d)(0x0a)R-400ZIP 的話
            表示 USB1 是接 A-200, USB2 是接 R-400Zip。

    *******************************************************************************
    B_CreatePrn()
    B_CreateUSBPort()
    ===============================================================================
    功能:    開啟 Printer 工作。

    語法:    int B_CreatePrn(int selection,LPCTSTR filename);
            int B_CreateUSBPort(int nPort);

    參數:    int    selection;    ●擇輸出埠或檔案。
                    0 -> print to file.
                    1 -> lpt1, 2 -> lpt2, 3 -> lpt3
                    4 -> com1, 5 -> com2, 6 -> com3
        LPCTSTR    filename;    ●當 selection 內容是 0 時資料則輸出至檔
                    案,檔名就是 filename 內容,可含路徑,或
                    是 NULL。當 selection 內容是 10 時,
                    filename 為輸出路徑。
            int    nPort;            ● USB 傳輸埠

    傳回值:0 -> OK.
        Reference BW-Error.txt file.

    範例:    B_CreatePrn(1,NULL); 或 B_CreatePrn(0,"C:\TEMP\out.prn");
        B_CreatePrn(10,"\\allen\Label"); 或 B_CreateUSBPort(1);

    說明:    B_CreatePrn 和 B_CreateUSBPort 函數會開啟你選擇的輸出埠或開啟你鍵入的
        輸出檔。而這個函數必須在所有函數之前執行。
        B_CreatePrn 和 B_CreateUSBPort 不能同時使用。

    *******************************************************************************
    B_ClosePrn()
    ===============================================================================
      功能:  關閉 Printer 工作。

      語法:  void B_ClosePrn(void);

      範例:  B_ClosePrn();

    說明:  這個 B_ClosePrn 函數會關閉執行過的記憶體及你選擇的輸出埠或關閉你開啟的
              輸出檔。而這個函數必須在所有函數之後執行。

    *******************************************************************************
    B_Bar2d_Maxi()
    ===============================================================================
      功能:  印出一個 Maxi Code 2D Barcode。

      語法:  int B_Bar2d_Maxi(int x,int y,int cl,int cc,long int pc,LPCTSTR data);

      參數:  int      x;                ●X 座標。
              int      y;                ●Y 座標。備註:1 dot = 0.125 mm。
              int      cl;               ●A 3-位數 Class code。
              int      cc;               ●A 3-位數 Country code。
              long int pc;               ●在美國 Post code 是一個4或5-位數,
                                           其他國家是 6 位數。
              LPCTSTR  data;             ●資料字串,最多84個字元。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int      x,y,cl,cc;
              long int pc;
              LPCTSTR  data="This MaxiCode";
                       x=50;y=50;cl=300;cc=400;pc=93065;
              B_Bar2d_Maxi(x,y,cl,cc,pc,data);

    說明:  這個 B_Bar2d_Maxi 函數可以列印出一個 Maxi Code 2D Barcode。

    *******************************************************************************
    B_Bar2d_PDF417()
    ===============================================================================
      功能:  印出一個 PDF-417 2D Barcode。

      語法:  int B_Bar2d_PDF417(int x,int y,int w,int v,int s,int c,int px,
                               int py,int r,int l,int t,int o,LPCTSTR data);

      參數:  int     x;                 ●X 座標。
              int     y;                 ●Y 座標。備註:1 dot = 0.125 mm。
              int     w;                 ●最大列印寬度,單位 dots。
              int     v;                 ●最大列印高度,單位 dots。
              int     s;                 ●錯誤校正等級,範圍:0~8。
              int     c;                 ●資料壓縮等級,範圍:0 或 1。
              int     px;                ●模組寬度,範圍:2~9 dots。
              int     py;                ●模組高度,範圍:4~99 dots。
              int     r;                 ●最大 row count。
              int     l;                 ●最大 column count。
              int     t;                 ●Truncation flag,
                                           '0' 是 normal 和 '1' 是 truncated.
              int     o;                 ●列印方向定位,'0'是 0°,'1'是90°、
                                                         '2'是180°,'3'是270°
              LPCTSTR data;              ●資料字串。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int     x,y,w,v,s,c,px,py,r,l,t,o;
              LPCTSTR data="ARGOXINFO";
                      x=10;y=10;w=400;v=300;s=0;c=0;px=3;py=7;r=10;l=2;t=0;o=0;
              B_Bar2d_PDF417(x,y,w,v,s,c,px,py,r,l,t,o,data);

    說明:  這個 B_Bar2d_PDF417 函數可以列印出一個 PDF-417 2D Barcode。

    *******************************************************************************
    B_Del_Form()
    ===============================================================================
      功能:  刪除 Form (表格)。

      語法:  int B_Del_Form(char formname[10]);

      參數:  char   formname[10];       ●表格名稱,最多 9 個字。
                                           當 formname 內容是 '*'時將會清除印表
                                           機內所有表格。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  char formname[10] = "demo";
              B_Del_Form(formname);
    
    說明:  這個 B_Del_Form 函數會刪除印表機內,你輸入的 Form (表格)名稱。當
              你刪除它後,將不能再還原,但可以重新載入。

    *******************************************************************************
    B_Del_Pcx()
    ===============================================================================
      功能:  刪除圖形。

      語法:  int B_Del_Pcx(char pcxname[10]);

      參數:  char   pcxname[10];        ●圖形名稱,最多 9 個字。
                                           當 pcxname 內容是 '*'時將會清除印表
                                           機內 RAM 或 flash memory 所有圖形。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  char pcxname[10]="*";
              B_Del_Pcx(pcxname);

    說明:  這個 B_Del_Pcx 函數會刪除印表機內,你輸入的圖形名稱。當你刪除它後,
              將不能再還原,但可以重新載入。

    *******************************************************************************
    B_Draw_Box()
    ===============================================================================
      功能:  畫一個框。

      語法:  int B_Draw_Box(int x,int y,int thickness,int hor_dots,int ver_dots);

      參數:  int    x;                  ●起點 X 座標。
              int    y;                  ●起點 Y 座標。
                                           備註:1 dot = 0.125 mm。
              int    thickness;          ●指定框四邊邊線厚度。
              int    hor_dots;           ●對角點 X 座標。
              int    ver_dots;           ●對角點 Y 座標。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int x,y,thickness,hor_dots,ver_dots;
                  x=50;y=120;thickness=5;hor_dots=250;ver_dots=150;
              B_Draw_Box(x,y,thickness,hor_dots,ver_dots);

    說明:  這個 B_Draw_Box 函數會畫一個屬性是 "OR" 的框。

    *******************************************************************************
    B_Draw_Line()
    ===============================================================================
      功能:  畫一條線。

      語法:  int B_Get_Line(char mode,int x,int y,int hor_dots,int ver_dots);

      參數:  char   mode;               ●選擇線條種類,如下表:
                                               ╒══╤═══════════╕
                                               │mode│線條種類              │
                                               ╞══╪═══════════╡
                                               │ E  │exclusive OR          │
                                               ├──┼───────────┤
                                               │ O  │OR                    │
                                               ├──┼───────────┤
                                               │ W  │白線,它會蓋掉先前影像│
                                               └──┴───────────┘
              int    x;                  ●起點 X 座標。
              int    y;                  ●起點 Y 座標。
                                           備註:1 dot = 0.125 mm。
              int    width;              ●水平長度。
              int    height;             ●垂直長度。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  char mode,
              int  x,y,hor_dots,ver_dots;
                   mode='O';x=50;y=30;hor_dots=100;ver_dots=10;
              B_Draw_Line(mode,x,y,hor_dots,ver_dots);

    說明:  這個 Draw_Line 函數會畫一個屬性是"OR"或"XOR"的線條及一條白線。

    *******************************************************************************
    B_Error_Reporting()
    ===============================================================================
      功能:  開啟或關閉錯誤回傳功能。

      語法:  int B_Error_Reporting(char option);

      參數:  char option;               ●當 option 是'N'時 Disable 狀態回饋,
                                           'S' 是 Enable 狀態回饋。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  char option;
                   option='S';
              B_Error_Reporting(option);

    說明:  這個 B_Error_Reporting 函數會使印表機狀態回饋 Disable/Enable,這回
              饋通道是透過 RS232 Port。預定值是 Disable。

    *******************************************************************************
    B_Get_DLL_Version()
    B_Get_DLL_VersionA()
    ===============================================================================
      功能:  取得或秀出此函數庫版本資訊。

      語法:  char* B_Get_DLL_Version(int nShowMessage);
              int B_Get_DLL_VersionA(int nShowMessage);

      參數:  int    nShowMessage;       ●訊息視窗顯現。0 -> 不顯現、1 -> 顯現。

    傳回值:  傳回版本資訊字串,失敗則傳回 NULL。
              B_Get_DLL_VersionA() -> return version value.

      範例:  B_Get_DLL_Version(1);

    說明:  這個 B_Get_DLL_Version 函數,讓使用者取得或秀出此函數庫版本資訊。

    *******************************************************************************
    B_Get_Graphic_ColorBMP()
    ===============================================================================
      功能:  轉換 BMP 圖檔彩色變灰階,並將圖形儲存在印表機內的 RAM。

      語法:  int B_Get_Graphic_ColorBMP(int x, int y, LPCTSTR filename);

      參數:  int    x;                  ●X 座標。
              int    y;                  ●Y 座標。
              LPCTSTR filename           ●圖形檔名稱,可含路徑。
                                           格式如:XXXXXXXX.XXX 或 X:\XXX\XXX.BMP
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Get_Graphic_ColorBMP(30,20,"girl.bmp");

    說明:  這個 B_Get_Graphic_ColorBMP 函數可輸入任何顏色 BMP 圖檔,並自動轉換為
              黑白灰階圖檔送至印表機列印,而轉換品質由 Windows's Driver for Dr.200
              or Dr.300 調整,所以使用者必需安裝 ARGOX Driver,印表機抓取為預設印表機,
              假若 default printer 不是 Dr.200 或 Dr.300 ,程式自動搜尋 Windows 內,
              是否有裝 Dr.200 或 Dr.300,再依序使用。圖形儲存在印表機內的 RAM。

    *******************************************************************************
    B_Get_Pcx()
    ===============================================================================
      功能:  列印一個圖形並將圖形儲存在印表機內的 Memory。

      語法:  int B_Get_Pcx(int x,int y,LPCTSTR filename);

      參數:  int      x;                ●X 座標。
              int      y;                ●Y 座標。備註:1 dot = 0.125 mm。
              LPCTSTR  filename;         ●圖形檔名稱,可含路徑。
                                           格式如:XXXXXXXX.XXX 或 X:\XXX\XXX.PCX
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Get_Pcx(10,100,"phone.pcx");

    說明:  這個 B_Get_Pcx 函數會列印一個圖形並將圖形儲存在印表機內的 RAM 或
              flash memory。圖形檔必須是 PCX 的格式。

    *******************************************************************************
    B_Initial_Setting()
    ===============================================================================
      功能:  前置處理。

      語法:  int B_Initial_Setting(int Type,LPCTSTR Source);

      參數:  int       Type;            ●選擇輸入模式,值為 0 -> 輸入字串,
                                                              1 -> 輸入檔案。
              LPCTSTR   Source;          ●資料來源,可為字串或檔案名稱,可含路徑。
                                           
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  LPCTSTR aa = "ZT\r\n\0"; B_Initial_Setting(0,aa);
              or
              B_Initial_Setting(1,"initfile.txt");

    說明:  這個 B_Initial_Setting 函數前置處理的動作,是將一串 Command 先送至印表
              機,由字串或檔案輸入,在使用這個函數時,須先在 B_Create_Prn() 之後其他
              函數之前,可作為使用者自訂型態。

    *******************************************************************************
    B_Load_Pcx()
    ===============================================================================
      功能:  列印一個圖形。

      語法:  int B_Load_Pcx(int x,int y,char pcxname[10]);

      參數:  int    x;                  ●X 座標。
              int    y;                  ●Y 座標。備註:1 dot = 0.125 mm。
              char   pcxname[10];        ●圖形檔名稱最大9個字元。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int   x,y;
              char  pcxname[10]="phone";
                    x=50;y=30;
              B_Load_Pcx(x,y,pcxname);

    說明:  這個 B_Load_Pcx 函數會列印一個 PCX 格式圖形,而圖形必須事先載入印表
              機內的 RAM 或 flash memory 儲存。

    *******************************************************************************
    B_Open_ChineseFont()
    ===============================================================================
      功能:  開啟使用中文點矩陣字型檔案 (16*15 和 24*24)。

      語法:  int B_Open_ChineseFont(char* path);

      參數:  char*  path;               ●中文點矩陣字型檔案來源路徑。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Open_ChineseFont("C:\\ET3");

    說明:  這個 B_Open_ChineseFont 函數開啟中文點矩陣字型檔案 (16*15 和 24*24),
              供 B_Prn_Text_Chinese 函數使用。

    *******************************************************************************
    B_Print_Form()
    ===============================================================================
      功能:  列印一個 FORM (表格),並輸入 FORM 所有變數、計數資料。

      語法:  int B_Print_Form(int labset,int copies,char form_out[10],
                             LPTSTR var);

      參數:  int    labset;             ●列印的份數,範圍:1~32767。
              int    copies;             ●複製的份數,範圍:1~32767。
              char   form_out[10];       ●表格名稱,同於之前載入的 FORM 名稱,
                                           或原先儲存在印表機內的 FORM。
              LPTSTR var;                ●輸入 FORM 所有變數、計數資料,用 ","
                                           依序分別區隔開。如果變數裡有","號,
                                           可用";,"來代表逗號。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int    labset,copies;
              char   form_out[10]="demo";
              LPTSTR var="2000,deng";
                     labset=3;copypiece=2;
              B_Print_form(labset,copies,form_out,var);

    說明:  這個 B_Print_Form 函數會送所有資料及表格到 Printer,這個函數使用前
              須先執行 B_Set_Form(),並在所有函數之後,B_ClosePrn() 之前執行。當使
              用此函數時,就不須執行 B_Print_Out()。

    *******************************************************************************
    B_Print_MCopy()
    ===============================================================================
      功能:  列印所有資料和加上跳號複製功能。

      語法:  int B_Print_MCopy(int labset,int copies)

      參數:  int     labset;            ●列印的份數。
              int     copies;            ●複製的份數,當為 1 時同等於Print_Out()功
                                           能。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Print_MCopy(2,2);

      說明:  這個 B_Print_MCopy 函數會送所有資料到 Printer,這個函數須在所有函數之
              後,B_ClosePrn() 之前執行,當使用此函數時,就不須執行 B_Print_Out()。它
              包含 B_Print_Out() 所有功能。

    *******************************************************************************
    B_Print_Out()
    ===============================================================================
      功能:  列印所有資料。

      語法:  int B_Print_Out(int labset);

      參數:  int    labset;             ●列印的份數。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Print_Out(1);

    說明:  這個 B_Print_Out 函數會送所有資料到 B_Printer,這個函數須在所有函數之
              後,B_ClosePrn() 之前執行。

    *******************************************************************************
    B_Prn_Barcode()
    ===============================================================================
      功能:  印出一個條碼和加上跳號功能。

      語法:  int B_Prn_Barcode(int x,int y,int ori,char type[4],int narrow,
                              int width,int height, char human,LPCTSTR data);

      參數:  int    x;                  ●X 座標。
              int    y;                  ●Y 座標。
                                           備註:200 dpi => 1 dot = 0.125 mm。
              int    ori;                ●列印方向定位,'0'是 0°,'1'是90°、
                                                         '2'是180°,'3'是270°
              char   type[4];            ●Bar code 型式、如下表:
    ╒══╤══════════════╤══╤══════════════╕
    │type│        條碼種類            │type│          條碼種類          │
    ╞══╪══════════════╪══╪══════════════╡
    │ 0  │Code 128 UCC (shipping cont-│ E30│EAN-13                      │
    │    │ainer code)                 ├──┼──────────────┤
    ├──┼──────────────┤ E32│EAN-13 2 digit add-on       │
    │ 1  │Code 128 subset A,B and C   ├──┼──────────────┤
    ├──┼──────────────┤ E35│EAN-13 5 digit add-on       │
    │ 1E │UCC/EAN                     ├──┼──────────────┤
    ├──┼──────────────┤ E80│EAN-8                       │
    │ 2  │Interleaved 2 of 5          ├──┼──────────────┤
    ├──┼──────────────┤ E82│EAN-8 2 digit add-on        │
    │ 2C │Interleaved 2 of 5 with che-├──┼──────────────┤
    │    │ck sum digit                │ E85│EAN-8 5 digit add-on        │
    ├──┼──────────────┼──┼──────────────┤
    │ 2D │Interleaved 2 of 5 with hum-│ K  │Codabar                     │
    │    │an readable check digit     ├──┼──────────────┤
    ├──┼──────────────┤ P  │Postnet                     │
    │ 2G │German Postcode             ├──┼──────────────┤
    ├──┼──────────────┤ UA0│UPC-A                       │
    │ 2M │Matrix 2 of 5               ├──┼──────────────┤
    ├──┼──────────────┤ UA2│UPC-A 2 digit add-on        │
    │ 2U │UPC Interleaved 2 of 5      ├──┼──────────────┤
    ├──┼──────────────┤ UA5│UPC-A 5 digit add-on        │
    │ 3  │Code 3 of 9                 ├──┼──────────────┤
    ├──┼──────────────┤ UE0│UPC-E                       │
    │ 3C │Code 3 of 9 with check sum  ├──┼──────────────┤
    │    │digit                       │ UE2│UPC-E 2 digit add-on        │
    ├──┼──────────────┼──┼──────────────┤
    │ 9  │Code 93                     │ UE5│UPC-E 5 digit add-on        │
    └──┴──────────────┴──┴──────────────┘

              int    narrow;             ●NARROW bar 寬度在最小單位,
              int    width;              ●WIDE bar 寬度在最小單位,
              int    height;             ●Bar code 高度。
              int    human;              ●當 human 是'N'時,則不列印文字,
                                           當 human 是'B'時,則列印可讀文字。
              LPCTSTR data;              ●資料字串,當尾端資料加上
                                           <Operation Number> 格式為加上跳號功能,
                                           Operation: + or - 記號,
                                           Number: 0 ~ 32768 數值。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Prn_Barcode(650,15,0,"E80",2,2,51,'B',"1234567"); 無跳號功能
              or
              B_Prn_Barcode(650,15,0,"E80",2,2,51,'B',"1234567<+10>"); 有跳號功能

    說明:  這個 B_Prn_Barcode 函數可以列印出一個特定 Barcode 和加上跳號功能。

    *******************************************************************************
    B_Prn_Configuration()
    ===============================================================================
      功能:  列印印表機內部配置。

      語法:  void B_Prn_Configuration(void);

      範例:  B_Prn_Configuration();

    說明:  這個 B_Prn_Configuration 函數會列印印表機內部配置,包含設定、
              firmware 版本、accessories、等....。

    *******************************************************************************
    B_Prn_Text()
    ===============================================================================
      功能:  印出一行文字和加上跳號功能。

      語法:  int B_Prn_Text(int x,int y,int ori,int font,int hor_factor,
                           int ver_factor,char mode,LPCTSTR data);

      參數:  int    x;                  ●X 座標。
              int    y;                  ●Y 座標。備註:1 dot = 0.125 mm。
              int    ori;                ●列印方向定位,'0'是 0°,'1'是90°、
                                                         '2'是180°,'3'是270°
              int    font;               ●選擇字形,1~5 選擇常佇字形。
              int    hor_factor;         ●水平放大比例,範圍:1~24。
              int    ver_factor;         ●垂直放大比例,範圍:1~24。
              char   mode;               ●反白功能,'N'普通文字,
                                                     'R'反白文字。
              LPCTSTR data;              ●資料字串,當尾端資料加上
                                           <Operation Number> 格式為加上跳號功能,
                                           Operation: + or - 記號,
                                           Number: 0 ~ 32768 數值。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Prn_Text(50,110,0,4,1,1,'N',"A123456"); 無跳號功能
              or
              B_Prn_Text(50,110,0,4,1,1,'N',"A123456<-1>"); 有跳號功能

    說明:  這個 B_Prn_Text 函數可以列印出一行文字和加上跳號功能。

    *******************************************************************************
    B_Prn_Text_Chinese()
    ===============================================================================
      功能:  印出一行文字,使用中文點矩陣字型檔案 (16*15 或 24*24)。

      語法:  int B_Prn_Text_Chinese(int x,int y,int fonttype,LPCTSTR id_name,LPCTSTR data);
      
      參數:  int      x;                ●X 座標。(dot)
              int      y;                ●Y 座標。(dot)
              int      fonttype;         ●矩陣字型選擇。
                                           0 -> 16*15、1 -> 24*24。
              LPCTSTR  id_name;          ●給予一個識別名稱存放於印表機內,以後直
                                           接使用 Load_Pcx() 即可將舊圖呼叫出來。
              LPCTSTR  data;             ●文字內容。
        
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Open_ChineseFont("C:\\ET3");
              B_Prn_Text_Chinese(100, 100, 0,"A01","國家利益當前AbCcDd");

    說明:  這個 B_Prn_Text_Chinese 函數可以印出一行文字,使用中文點矩陣字型檔案
              (16*15 或 24*24)。
              但須先安裝 Window's Driver for Dr.200 or Dr.300,濃淡從 driver 設定,
              印表機抓取為預設印表機,假若default printer 不是 Dr.200 或 Dr.300 ,
              程式自動搜尋 Windows 內,是否有裝 Dr.200 或 Dr.300,在依序使用。

    *******************************************************************************
    B_Prn_Text_TrueType()
    B_Prn_Text_TrueType_W()
    ===============================================================================
      功能:  印出一行 True Type Font 文字。

      語法:  int B_Prn_Text_TrueType(int x,int y,int FSize,LPCTSTR FType,
                                    int Fspin,int FWeight,int FItalic,int FUnline,
                                    int FStrikeOut,LPCTSTR id_name,LPCTSTR data);
              int B_Prn_Text_TrueType_W(int x,int y,int FHeight,int FWidth,LPCTSTR FType,
                                    int Fspin,int FWeight,int FItalic,int FUnline,
                                    int FStrikeOut,LPCTSTR id_name,LPCTSTR data);
                                          
      參數:  int      x;                ●X 座標。
              int      y;                ●Y 座標。備註:1 dot = 0.125 mm。
              int      FSize;            ●TrueType font size,單位為點(dot)。
                                            FSize = (dpi * point) / 72.
              int      FHeight;          ●字型高度,單位為點(dot)。
                                            FHeight = (dpi * point) / 72.
              int      FWidth;           ●字型寬度,單位為點(dot)。
                                            FWidth = (dpi * point) / 72.
              LPCTSTR  FType;            ●TrueType font 字型名稱。
              int      Fspin;            ●TrueType font 字體旋轉。
                                           1 -> 0, 2 -> 90, 3 -> 180, 4 -> 270
              int      FWeight;          ●TrueType font 字體粗細。
                                           0 and NULL and 400 -> 400 標準、
                                           100 -> 非常細、200 -> 極細、
                                           300 -> 細        、500 -> 中等、
                                           600 -> 半粗  、700 -> 粗  、
                                           800 -> 特粗  、900 -> 黑體。
              int      FItalic;          ●TrueType font 字體斜體。
                                           0 -> FALSE、1 -> TRUE。
              int      FUnline;          ●TrueType font 字體加底線。
                                           0 -> FALSE、1 -> TRUE。
              int      FStrikeOut;       ●TrueType font 字體加刪除線。
                                           0 -> FALSE、1 -> TRUE。
              LPCTSTR  id_name;          ●給予一個識別名稱存放於印表機內,以後直
                                           接使用 Load_Pcx() 即可將舊圖呼叫出來。
              LPCTSTR  data;             ●文字內容。
        
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Prn_Text_TrueType(30,35,40,"標楷體",4,400,0,0,0,"AA","機要絕密");
              B_Prn_Text_TrueType_W(30,35,40,30,"標楷體",4,400,0,0,0,"AA","機要絕密");

    說明:  這個 B_Prn_Text_TrueType 函數可以印出一行 True Type Font 文字,
              但須先安裝 Window's Driver for Dr.200 or Dr.300,濃淡從 driver 設定,
              印表機抓取為預設印表機,假若default printer 不是 Dr.200 或 Dr.300 ,
              程式自動搜尋 Windows 內,是否有裝 Dr.200 或 Dr.300,在依序使用。

    *******************************************************************************
    B_Select_Option()
    ===============================================================================
      功能:  設定轉印模式、啟動 Cutter 或 Peel。

      語法:  int B_Select_Option(int object);

      參數:  int   object;              ●印表機功能選項。
                                           1 -> 開啟熱轉,關閉 Cutter 和 Peel。
                                           2 -> 開啟熱感,關閉 Cutter 和 Peel。
                                           3 -> 開啟熱感和 Cutter,關閉 Peel。
                                           4 -> 開啟熱感和 Peel,關閉 Cutter。
                                           5 -> 開啟熱轉和 Cutter,關閉 Peel。
                                           6 -> 開啟熱轉和 Peel,關閉 Cutter。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Select_Option(1);

    說明:  這個 B_Select_Option 函數可以選擇不同 Printer 選項,使印表機依據這
              些選項工作。

    *******************************************************************************
    B_Select_Symbol()
    ===============================================================================
      功能:  符號設定選擇。

      語法:  int B_Select_Symbol(int num_bit,int symbol,int country);

      參數:  int    num_bit;            ●資料位元數量。8 是 8-bit data 和
                                                         7 是 7-bit data。
              int    symbol;             ●符號設定。見下表:
                                           備註:工廠內定符號設定是 Code page
                                           437(English)。
              int    country;            ●KDU country code.
                 ╒══════════════╤══════════════╕
                 │        8 bit data          │        7 bit data          │
                 ├───┬──────────┼───┬──────────┤
                 │symbol│    Code page       │symbol│     Code page      │
                 ╞═══╪══════════╪═══╪══════════╡
                 │  0   │English(437)        │  0   │USASCII             │
                 ├───┼──────────┼───┼──────────┤
                 │  1   │Latin(850)          │  1   │British             │
                 ├───┼──────────┼───┼──────────┤
                 │  2   │Slavic(852)         │  2   │German              │
                 ├───┼──────────┼───┼──────────┤
                 │  3   │Portugal(860)       │  3   │French              │
                 ├───┼──────────┼───┼──────────┤
                 │  4   │Canadian?French(863)│  4   │Danish              │
                 ├───┼──────────┼───┼──────────┤
                 │  5   │Nordic(865)         │  5   │Italian             │
                 ├───┼──────────┼───┼──────────┤
                 │      │                    │  6   │Spanish             │
                 ├───┼──────────┼───┼──────────┤
                 │      │                    │  7   │Swedish             │
                 ├───┼──────────┼───┼──────────┤
                 │      │                    │  8   │Swiss               │
                 └───┴──────────┴───┴──────────┘
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int num_bit,symbol,country;
                  num_bit=7;symbol=5;country=1;
              B_Select_Symbol(num_bit,symbol,country);

    說明:  這個 B_Select_Symbol 函數可以選擇適當符號設定。

    *******************************************************************************
    B_Set_Backfeed()
    ===============================================================================
      功能:  啟動 Back feed。

      語法:  int B_Set_Backfeed(char option);

      參數:  char   option;             ●功能選項,"B" 關閉 Back feed。
                                                     "F" 啟動 Back feed。
                                           它可吐出一定長度,讓使用者看到印出結
                                           果。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  char option;
                   option='B';
              B_Set_Backfeed(option);

    說明:  這個 B_Set_Backfeed 函數可以調整停止點。

    *******************************************************************************
    B_Set_BMPSave()
    ===============================================================================
      功能:  儲存影像圖檔。

      語法:  int B_Set_BMPSave(int nSave, char *pstrBMPFName);

      參數:  int    nSave;               # 1 -> 儲存圖檔
                        0 -> 不儲存圖檔

              char   *pstrBMPFName;          # 儲存圖檔的名稱

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Set_BMPSave(1, "C:\TempBMP.bmp");

    說明:  這個 B_Set_BMPSave 函數,可以決定是否儲存影像圖檔。

    *******************************************************************************
    B_Set_Darkness()
    ===============================================================================
      功能:  設定熱感頭列印熱度。

      語法:  int B_Set_Darkness(int darkness);

      參數:  int    darkness;           ●設定熱感頭列印熱度,範圍:0~15,內
                                           定是 8。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int darkness;
                  darkness=9;
              B_Set_Darkness(darkness);

    說明:  這個 B_Set_Darkness 函數控制影像濃淡,想得到更好的印出品質,你應該
              考慮一些因素,印出圖案樣式、速度。

    *******************************************************************************
    B_Set_DebugDialog()
    ===============================================================================
      功能:  設定除錯環境。

      語法:  int B_Set_DebugDialog(int nEnable);

      參數:  int    nEnable;          # 1 -> 除錯環境致能
                                         0 -> 除錯環境關閉

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Set_DebugDialog(1);

    說明:  這個 B_Set_DebugDialog 函數,設定除錯環境,除了會回傳錯誤碼,也會秀
              出警示訊息對話框外。

    *******************************************************************************
    B_Set_Direction()
    ===============================================================================
      功能:  設定列印方向。

      語法:  int B_Set_Direction(char direction);

      參數:  int    direction;          ●設定列印方向,範圍:B 和 T。
                                           它們是對角對稱。內定是 T。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  char direction;
                   direction='T';
              B_Set_Direction(direction);

    說明:  這個 B_Set_Direction 函數設定列印方向,對整個版面內所有圖形文字。

    *******************************************************************************
    B_Set_Form()
    ===============================================================================
      功能:  儲存並列印 FORM (表格)。

      語法:  int B_Set_Form(LPCTSTR formfile);

      參數:  LPCTSTR   formfile;        ●表格檔案名稱,可含路徑。
                                           表格檔的來源,使用 Drive Disk 內
                                           dos\pplb\demo.bat 來設定取得。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Set_Form("demo.prn");

    說明:  這個 B_Set_Form 函數儲存並列印 FORM (表格)。在使用這個函數時,須先
              在 B_Print_Form函數之前。使用此函數時,就必須執行 B_Print_Form()。

    *******************************************************************************
    B_Set_Labgap()
    ===============================================================================
      功能:  同時設定標籤長度及 GAP 長度。

      語法:  int B_Set_Labgap(int lablength,int gaplength);

      參數:  int    lablength;          ●標籤長度。單位 dot。
              int    gaplength;          ●GAP 長度。當是連續紙時,必須設為 0。
                                           備註:1 dot = 0.125 mm。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int lablength,gaplength;
                  lablength=100;gaplength=20;
              B_Set_Labgap(lablength,gaplength);

    說明:  這個 B_Set_Labgap 函數設定標籤長度及 GAP 長度。

    *******************************************************************************
    B_Set_Labwidth()
    ===============================================================================
      功能:  設定標籤寬度。

      語法:  int B_Set_Labwidth(int labwidth);

      參數:  int    labwidth;           ●標籤寬度。單位 dot。
                                           備註:1 dot = 0.125 mm。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int labwidth;
                  labwidth=250;
              B_Set_Labwidth(labwidth);

    說明:  這個 B_Set_Labwidth 函數設定標籤寬度。當使用此函數,就不能使用
              B_Set_Originpoint 函數。

    *******************************************************************************
    B_Set_Originpoint()
    ===============================================================================
      功能:  設定開始列印點。

      語法:  int B_Set_Originpoint(int hor,int ver);

      參數:  int    hor;                ●水平邊界基點。單位 dot。
              int    ver;                ●垂直邊界基點。單位 dot。
                                           備註:1 dot = 0.125 mm。
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int hor,ver;
                  hor=0;ver=0;
              B_Set_Originpoint(hor,ver);

    說明:  這個 B_Set_Originpoint 函數使用重新設定起源點 X、Y 軸。

    *******************************************************************************
    B_Set_Prncomport()
    ===============================================================================
      功能:  設定 Serial Port。

      語法:  int B_Set_Prncomport(int baud,char parity,int data,int stop);

      參數:  int    baud;               ●鮑爾率,如下表:
                                           ╒══╤══════╕
                                           │baud│   speed    │
                                           ╞══╪══════╡
                                           │ 38 │ 38,400 baud│
                                           ├──┼──────┤
                                           │ 19 │ 19,200 baud│
                                           ├──┼──────┤
                                           │ 96 │  9,600 baud│
                                           ├──┼──────┤
                                           │ 48 │  4,800 baud│
                                           ├──┼──────┤
                                           │ 24 │  2,400 baud│
                                           └──┴──────┘
              char   parity;             ●Parity。'O'是 odd,'E'是 even parity
                                                   'N'是 none parity。
              int    data;               ●Data bit number,7 或 8。
              int    stop;               ●Stop bit number,1 或 2。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int  baud,data,stop;
              char parity;
                   parity='N';baud=96;data=8;stop=1;
              B_Set_Prncomport(baud,parity,data,stop);

    說明:  這個 B_Set_Prncomport 函數設定 Serial Port,改變 printer 與主機相同
              。印表機必須與主機相同否則會發生不可預知之事情。

    *******************************************************************************
    B_Set_Prncomport_PC()
    ===============================================================================
      功能:  設定 PC 序列埠。

      語法:  int B_Set_Prncomport_PC(int nBaudRate, int nByteSize, int nParity,
                                int nStopBits, int nDsr, int nCts, int nXonXoff);

      參數:  int    nBaudRate;          ●鮑爾率,如下表:
                                            1 -> 110     9 -> 19200
                                            2 -> 300    10 -> 38400
                                            3 -> 600    11 -> 56000
                                            4 -> 1200   12 -> 57600
                                            5 -> 2400   13 -> 115200
                                            6 -> 4800   14 -> 128000
                                            7 -> 9600   15 -> 256000
                                            8 -> 14400   0 -> 9600

              int    nByteSize;          ●Data bit number:
                                            0 -> 7-bit data
                                            7 -> 7-bit data
                                            8 -> 8-bit data

              int    nParity;            ●Parity,如下表:
                                            0 -> none parity
                                            1 -> even parity
                                            2 -> odd  parity
              int    nStopBits;          ●Stop bit number:
                                            0 -> 1 stop bit
                                            1 -> 1 stop bit
                                            2 -> 2 stop bits
              int    nDsr;               ●Setup hardware flow control
                                            1 -> DTR CONTROL HANDSHAKE;
                                            0 -> DTR CONTROL ENABLE;

              int    nCts;               ●Setup hardware flow control
                                            1 -> RTS CONTROL HANDSHAKE;
                                            0 -> RTS CONTROL ENABLE;

              int    nXonXoff;           ●Setup software flow control
                                            0 -> Enable;
                                            1 -> Disable;
    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Set_Prncomport_PC(0, 0, 0, 0, 1, 1, 1);

    說明:  這個 B_Set_Prncomport_PC 函數會設定 PC 序列埠設定值,來改變 PC 相同
              於印表機序列埠設定值,如果不同則無法與印表機連接。此函數必須在函數
              B_Print_Out 之前執行。
              
    *******************************************************************************
    B_Set_Speed()
    ===============================================================================
      功能:  設定列印速度。

      語法:  int B_Set_Speed(int speed);

      參數:  int speed;                 ●列印速度,範圍:0~7。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  int speed;
                  speed=2;
              B_Set_Speed(speed);

    說明:  這個 B_Set_Speed 函數設定列印速度。

    *******************************************************************************
    B_Set_ProcessDlg()
    ===============================================================================
      功能:  開啟或關閉進度對話框。

      語法:  int B_Set_ProcessDlg(int nShow);

      參數:  int   nShow;        0:關閉進度對話框。
                    1:開啟進度對話框

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Set_ProcessDlg(1);

    說明:  這個 B_Set_ProcessDlg 函數可開關進度對話框。

    *******************************************************************************
    B_Bar2d_PDF417_N()
    ===============================================================================
      功能:  印出一個 PDF-417 2D Barcode。

      語法:  int B_Bar2d_PDF417_N(int x, int y, int w, int h, LPCTSTR pParameter, LPCTSTR data);

      參數:  int     x;                 ●X 座標。
              int     y;                 ●Y 座標。
              int     w;                 ●最大列印寬度,單位 dots。
              int     h;                 ●最大列印高度,單位 dots。
          LPCTSTR pParameter         ●其他可隱藏之參數,此參數可以是NULL。
                                       錯誤校正等級(s),範圍:0~8。
                       資料壓縮等級(c),範圍:0 或 1。
                       print human readable(pxxx,yyy,mm)
                       xxx:Human readable horizontal start location, 0 ~ 999.
                       yyy: Human readable vertical start location, 0 ~ 999.
                       mm:Maximum characters per line, 0 ~ 99.
                       f:Bar code origin point, 0 or 1.
                       模組寬度(x),範圍:2~9 dots。
                       模組高度(y),範圍:4~99 dots。
                       最大 row count(r)。
                       最大 column count(l)。
                       Truncation flag(t),'0' 是 normal 和 '1' 是 truncated.
              LPCTSTR data;              ●資料字串。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Bar2d_PDF417_N(10,10,400,300,”s0,c0,p400,400,10,f0,x3,y7,r10,l2,f0”,"ARGOXINFO");
              pParameter參數可以任意組合

    說明:  這個 B_Bar2d_PDF417 函數可以列印出一個 PDF-417 2D Barcode。

    ******************************************************************************
    B_Set_ErrorReport()
    ==============================================================================
      功能:  開啟或關閉印表機錯誤回傳。

      語法:  int B_Set_ErrorReport(int nEnable);

      參數:  int   nEnable;        0:關閉錯誤回傳。
                    1:開啟錯誤回傳。

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_Set_ErrorReport(1);

    說明:  這個 B_Set_ErrorReport 函數可開關進度對話框。
          回傳時是透過 RS-232 傳回, PC端可透過終端機接收訊息

    *******************************************************************************
    B_ResetPrinter()
    ==============================================================================
      功能:  此函數會使印表機重新開機。

      語法:  int B_ResetPrinter();

    傳回值:  0    -> OK.
              Reference BW-Error.txt file.

      範例:  B_ResetPrinter();

    *******************************************************************************

原文地址:https://www.cnblogs.com/javawebsoa/p/3084601.html