/******************************************************************************
  Module: AWIN-CAPI.TXT
          All commands for PPLA in Dynamic Link Library for Windows
  Notices: Copyright (c) 1998-2013 ARGOX
******************************************************************************/
  目錄
===============================================================================
(01)A_Bar2d_Maxi()              => 印出一個 Maxi Code 2D Barcode。
(02)A_Bar2d_Maxi_Ori()          => 印出一個 Maxi Code 2D Barcode，含旋轉角度。
(03)A_Bar2d_PDF417()            => 印出一個 PDF-417 2D Barcode。
(04)A_Bar2d_PDF417_Ori()        => 印出一個 PDF-417 2D Barcode，含旋轉角度。
(05)A_Bar2d_DataMatrix()        => 印出一個 DataMatrix 2D Barcode
(06)A_Clear_Memory()            => 清除 Printer 內 Flash Memory 的資料。
(07)A_ClosePrn()                => 關閉 Printer 工作。
(08)A_CreatePrn()               => 開啟 Printer 工作。
(09)A_Del_Graphic()             => 刪除儲存在印表機 RAM 或 Flash Memory 內的圖形。
(10)A_Draw_Box()                => 畫一個框。
(11)A_Draw_Line()               => 畫一條線。
(12)A_Feed_Label()              => 送一張標籤。
(13)A_Get_DLL_Version()         => 取得或秀出此函數庫版本資訊。
(14)A_Get_DLL_VersionA()        => 取得或秀出此函數庫版本資訊。
(15)A_Get_Graphic()             => 列印一個圖形並將圖形儲存在印表機內的 RAM 或 Flash Memory。
(16)A_Get_Graphic_ColorBMP()    => 轉換 BMP 圖檔彩色變灰階，並將圖形儲存在印表機內的 RAM 或 Flash Memory。
(17)A_Initial_Setting()         => 前置處理。
(18)A_Load_Graphic()            => 列印一個圖形。
(19)A_Open_ChineseFont()        => 開啟使用中文點矩陣字型檔案 (16*15 和 24*24)。
(20)A_Print_Form()              => 列印一個 FORM (表格)，並輸入 FORM 的名稱，並設定
                                   寬及高的比例和跳號次數與列印份數。
(21)A_Print_Out()               => 輸出所有資料並設定寬及高的比例和跳號次數與列印份數。
(22)A_Prn_Barcode()             => 印出一個條碼。
(23)A_Prn_Text()                => 印出一行文字。
(24)A_Prn_Text_Chinese()        => 印出一行文字，使用中文點矩陣字型檔案 (16*15 或 24*24)。
(25)A_Prn_Text_TrueType()       => 印出一行 True Type Font 文字。
(26)A_Prn_Text_TrueType_W()     => 印出一行 True Type Font 文字，並控制字型的寬及高。
(27)A_Set_Backfeed()            => 標籤回收停止位置。
(28)A_Set_BMPSave()             => 儲存影像圖檔。
(29)A_Set_Cutting()             => 設定指定印出幾張後切刀切一次。
(30)A_Set_Darkness()            => 設定熱感頭列印熱度。
(31)A_Set_DebugDialog()         => 設定除錯環境。
(32)A_Set_Feed()                => 設定標籤紙送出的速度。
(33)A_Set_Form()                => 儲存並列印 FORM (表格)。
(34)A_Set_Margin()              => 設定開始列印位置和左邊空白空間。
(35)A_Set_Prncomport()          => 設定印表機序列埠。
(36)A_Set_Prncomport_PC()       => 設定 PC 序列埠。
(37)A_Set_Sensor_Mode()         => 設定 SENSOR 模式或連續紙模式。
(38)A_Set_Speed()               => 設定列印速度。
(39)A_Set_Syssetting()          => 設定轉印模式、啟動 Cutter 或 Peel、設定標籤最長
                                   的長度、改變 slash zero 為 normal zero、設定每印
                                   一張暫停一次。
(40)A_Set_Unit()                => 設定度量單位為英吋或公厘。
(41)A_Set_Gap()                 => 設定 Gap 長度。
(42)A_Set_Logic()               => 設定反白功能。
(43)A_Set_ProcessDlg()          => 開啟或關閉進度對話框。
(44)A_Set_LabelVer()            => 設定紙張寬度 (For R400)。
(45)A_GetUSBBufferLen()         => 查詢 USB 埠資料長度。
(46)A_EnumUSB()                 => 取得 USB 埠的資料。
(47)A_CreateUSBPort()           => 使用 USB 埠進行傳輸。
(48)A_CreatePort()              => 開啟傳輸埠進行傳輸。
(49)A_Clear_MemoryEx()          => 指定清除 Printer 內 RAM 或 Flash Memory 的資料。
(50)A_Set_Mirror()              => 開啟或關閉鏡射模式。
(51)A_Bar2d_RSS()               => 列印 RSS 條碼。
(52)A_Bar2d_QR_M()              => 列印 QR 條碼 (手動模式)。
(53)A_Bar2d_QR_A()              => 列印 QR 條碼 (自動模式)。
(54)A_GetNetPrinterBufferLen()  => 查詢 Net Printer的資料長度。
(55)A_EnumNetPrinter()          => 取得 Net Printer的資料。
(56)A_CreateNetPort()           => 使用 Net 埠進行傳輸。   
(57)A_Prn_Text_TrueType_Uni()   => 印出一行由Unicode編碼文字所轉成的 True Type Font 文字。
(58)A_Prn_Text_TrueType_UniB()  => 印出一行由Unicode編碼文字所轉成的 True Type Font 文字。
(59)A_GetUSBDeviceInfo()        => 取得 USB 埠的裝置名稱和裝置路徑。
(60)A_Get_Graphic_ColorBMPEx()  => 轉換 BMP 圖檔彩色變灰階，並將圖形儲存在印表機內的 
                                   RAM 或 Flash Memory。
(61)A_Get_Graphic_ColorBMP_HBitmap() => 轉換 BMP 圖檔彩色變灰階，並將圖形儲存在印表機內的 
                                        RAM 或 Flash Memory。
(62)A_WriteData()               => 用來立即將資料傳送出或暫時寫入暫存區中。
(63)A_ReadData()                => 取得印表機中的資料。
(64)A_Set_EncryptionKey()       => 設定加密鑰匙的值。
(65)A_Check_EncryptionKey()     => 確認加密鑰匙的正確性。
(66)A_Set_ErrorDlg()            => 開啟或關閉重試詢問視窗。
(67)A_Set_CommTimeout()         => 設定通信的時間.
(68)A_Get_CommTimeout()         => 取得通信的時間.
(69)A_Set_LabelForSmartPrint()  => 設定 Smart Print 中所需的資訊.

*******************************************************************************
  注意事項
===============================================================================
1.你應該將DLL檔案放置在哪兒?
  若使用32位元的DLL:
  A.將DLL檔案和應用程式放在同一目錄下.(這是最好的方法)
  B.在Windows 32位元作業系統中, 將DLL檔案放置在\Windows\System32目錄.
  C.在Windows 64位元作業系統中, 將DLL檔案放置在\Windows\Syswow64目錄.
  若使用64位元的DLL:
  A.將DLL檔案和應用程式放在同一目錄下.(這是最好的方法)
  B.在Windows 32位元作業系統中, 無法使用 64位元的DLL.
  C.在Windows 64位元作業系統中, 將DLL檔案放置在\Windows\Syswow32目錄.
2.以下範例為 Visual C++ 及 Visual Basic 的範例,其他程式語言不一定完全相同。

*******************************************************************************
A_GetUSBBufferLen()
A_EnumUSB()
===============================================================================
功能： 取得 USB Printer 的裝置名稱及資料長度。

語法：
  VC:
    int A_GetUSBBufferLen(void);
    int A_EnumUSB(char *buf);
  VB: VBA:
    Declare Function A_GetUSBBufferLen() As Long
    Declare Function A_EnumUSB(ByVal buf As String) As Long
  VB.net:
    Declare Function A_GetUSBBufferLen() As Integer
    Declare Function A_EnumUSB(ByVal buf As Byte()) As Integer

參數：
    buf;
      儲存 USB Printer 資料。

傳回值：
    A_GetUSBBufferLen();  傳回 USB Printer的資料長度.
    A_EnumUSB();  0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    char *pbuf;
    int nLen = A_GetUSBBufferLen() + 1;
    if (nLen > 1) {
      pbuf = (char *)new char[nLen];
      A_EnumUSB(pbuf);
    }
  VB: VBA:
    Dim nLen As Long
    Dim pbuf As String
    nLen = A_GetUSBBufferLen() + 1
    If nLen > 1 Then
      pbuf = Space(128)
      Call A_EnumUSB(pbuf)
    End If
  VB.net:
    Dim nLen As Integer
    Dim pbuf(128) As Byte
    nLen = A_GetUSBBufferLen() + 1
    If nLen > 1 Then
      Call A_EnumUSB(pbuf)
    End If
    
說明：  這兩個函數是一組的函數。先用 A_GetUSBBufferLen() 取得 USB 傳輸埠的資料
    長度, 然後再配記憶體給 A_EnumUSB() 儲存 USB 埠的資料。USB 埠的資料是以
    ("0x0d0x0a")做分隔,舉例來說, 如果資料是 A-200(0x0d)(0x0a)R-400ZIP的話表示 
    USB1 是接 A-200, USB2 是接 R-400Zip。

*******************************************************************************
A_GetUSBDeviceInfo()
===============================================================================
功能： 取得 USB Printer的裝置名稱和裝置路徑。

語法：
  VC:
    int A_GetUSBDeviceInfo(int nPort, char *pDeviceName, int *pDeviceNameLen, 
      char *pDevicePath, int *pDevicePathLen);
  VB: VBA:
    Declare Function A_GetUSBDeviceInfo(ByVal nPort As Long, _
      ByVal pDeviceName As String, ByRef pDeviceNameLen As Long, _
      ByVal pDevicePath As String, ByRef pDevicePathLen As Long) As Long
  VB.net:
    Declare Function A_GetUSBDeviceInfo(ByVal nPort As Integer, _
      ByVal pDeviceName As Byte(), ByRef pDeviceNameLen As Integer, _
      ByVal pDevicePath As Byte(), ByRef pDevicePathLen As Integer) As Integer

參數：
    nPort;
      指定要取得資料的USB printer, 由1開始.
    pDeviceName;
      儲存USB printer的裝置名稱, 若輸入時為空指標, 則不填資料.
    pDeviceNameLen;
      呼叫函式時要填入pDeviceName暫存區的長度; 輸出時則會回傳裝置名稱的長度.
    pDevicePath;
      儲存USB printer的裝置路徑, 若輸入時為空指標, 則不填資料.
    pDevicePathLen;
      呼叫函式時要填入pDevicePath暫存區的長度; 輸出時則會回傳裝置路徑的長度.
  
傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    char buf1[128]={0}, buf2[128]={0};
    int nLen1=128, nLen2=128, nlen;
    nlen = A_GetUSBBufferLen() + 1;
    if (nlen > 1) {
      A_GetUSBDeviceInfo(1, buf1, &nLen1, buf2, &nLen2);
      A_CreatePrn(12, buf2); //or A_CreatePort(6, 0, buf2);
    }
  VB: VBA:
    Dim buf1 As String
    Dim buf2 As String
    Dim nLen1, nLen2, nlen As Long

    nlen = A_GetUSBBufferLen() + 1
    If nlen > 1 Then
      nLen1 = 128
      nLen2 = 128
      buf1 = Space(nLen1)
      buf2 = Space(nLen2)
      Call A_GetUSBDeviceInfo(1, buf1, nLen1, buf2, nLen2)
      Call A_CreatePrn(12, buf2) 'or Call A_CreatePort(6, 0, buf2)
    End If
  VB.net:
    Dim buf1() As Byte
    Dim buf2() As Byte
    Dim nLen1, nLen2, nlen As Integer
    Dim encAscII = System.Text.Encoding.ASCII

    nlen = A_GetUSBBufferLen() + 1
    If nlen > 1 Then
      nLen1 = 128
      nLen2 = 128
      ReDim buf1(nLen1)
      ReDim buf2(nLen2)
      Call A_GetUSBDeviceInfo(1, buf1, nLen1, buf2, nLen2)
      Call A_CreatePrn(12, encAscII.GetString(buf2, 0, nLen2))
      'or Call A_CreatePort(6, 0, encAscII.GetString(buf2, 0, nLen2))
    End If

說明：  此函式先呼叫 A_GetUSBBufferLen() 取得 USB printer的資料長度, 然後再呼叫 
    A_GetUSBDeviceInfo() 取得 USB printer的相關資料。
    pDevicePath所儲存的資料是USB的裝置路徑, 可用在A_CreatePrn()及A_CreatePort()
    來開啟USB裝置。

*******************************************************************************
A_GetNetPrinterBufferLen()
A_EnumNetPrinter()
===============================================================================
功能：  取得 Net Printer 的裝置名稱及資料長度。

語法：
  VC:
    int A_GetNetPrinterBufferLen(void);
    int A_EnumNetPrinter(char *buf);
  VB: VBA:
    Declare Function A_GetNetPrinterBufferLen() As Long
    Declare Function A_EnumNetPrinter(ByVal buf As String) As Long
  VB.net:
    Declare Function A_GetNetPrinterBufferLen() As Integer
    Declare Function A_EnumNetPrinter(ByVal buf As Byte()) As Integer

參數：
    buf;
      儲存 Net Printer 資料。

傳回值：
    A_GetNetPrinterBufferLen();  傳回 Net Printer 的資料長度.
    A_EnumNetPrinter();  0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    char *pbuf;
    int nLen = A_GetNetPrinterBufferLen() + 1;
    if (nLen > 1) {
      pbuf = (char *)new char[nLen];
      A_EnumNetPrinter(pbuf);
    }
  VB: VBA:
    Dim nLen As Long
    Dim pbuf As String
    nLen = A_GetNetPrinterBufferLen() + 1
    If nLen > 1 Then
      pbuf = Space(128)
      Call A_EnumNetPrinter(pbuf)
    End If
  VB.net:
    Dim nLen As Integer
    Dim pbuf(128) As Byte
    nLen = A_GetNetPrinterBufferLen() + 1
    If nLen > 1 Then
      Call A_EnumNetPrinter(pbuf)
    End If

說明：  這兩個函數是一組的函數。先用 A_GetNetPrinterBufferLen() 取得 Net Printer
    的資料長度, 然後再配記憶體給 A_EnumNetPrinter() 儲存 Net Printer 的資料。
    Net Printer 的資料是以("0x0d0x0a")做分隔,舉例來說, 如果資料是 
    NetPrinter:192.168.1.2(0x0d)(0x0a)NetPrinter:192.168.1.25 的話表示 
    NetPrinter1 是接 NetPrinter:192.168.1.2, 
    NetPrinter2 是接 NetPrinter:192.168.1.25。

*******************************************************************************
A_CreatePrn()
===============================================================================
功能：  開啟 PPLA Library 工作。

語法：
  VC:
    int A_CreatePrn(int selection, LPCTSTR filename);
  VB: VBA:
    Declare Function A_CreatePrn(ByVal selection As Long, _
      ByVal filename As String) As Long
  VB.net:
    Declare Function A_CreatePrn(ByVal selection As Integer, _
      ByVal filename As String) As Integer

參數：
    selection;
      選擇輸出埠或檔案。
      0 -> print to file.
      1 -> lpt1, 2 -> lpt2, 3 -> lpt3
      4 -> com1, 5 -> com2, 6 -> com3
      10 -> pipe, 11 -> USBXXX, 12 -> USB
      13 -> LAN Client(TCP/IP)
    filename;
      當 selection 是 0 時，資料則輸出至檔案，filename 為檔案名稱，可含路徑。
      當 selection 是 10 時，filename 為輸出路徑或機碼(裝置路徑)。
      當 selection 是 11 時，filename 指的是想開啟的USB之index, index由1開始;
      當 selection 是 12 時，filename 指的是想開啟的USB機碼(裝置路徑), 和nPort = 10的使用方法一樣
      當 selection 是 13 時, filename 指的是想開啟的IP Address, 使用TCP/IP去開啟; 
        預設的port值為9100, 若要指定port值, 如80, 則在IPAddress後加上字串":80".

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    int nLen;
    A_CreatePrn(1,NULL); 或 A_CreatePrn(0,"C:\\out.prn");
    A_CreatePrn(10,"\\\\allen\\Label");  //共享模式.
  VB: VBA: VB.net:
    Dim nLen As Long
    Call A_CreatePrn(1, null) or Call A_CreatePrn(0,"C:\\out.prn")
    Call A_CreatePrn(10, "\\\\allen\\Label")

說明：  A_CreatePrn()函數會開啟你選擇的輸出埠或開啟你鍵入的輸出檔。
    而這個函數必須在所有函數之前執行。
    A_CreatePrn(), A_CreateUSBPort(), A_CreateNetPort() 和 A_CreatePort()不能同時使用。

*******************************************************************************
A_CreatePort()
===============================================================================
功能：  開啟 PPLA Library 工作。

語法：
  VC:
    int A_CreatePort(int nPortType, int nPort, LPCTSTR filename);
  VB: VBA:
    Declare Function A_CreatePort(ByVal nPortType As Long, ByVal nPort As Long, _
      ByVal filename As String) As Long
  VB.net:
    Declare Function A_CreatePort(ByVal nPortType As Integer, ByVal nPort As Integer, _
      ByVal filename As String) As Integer

參數：
    nPortType;
      選擇輸出埠種類。
      0 -> 檔案
      1 -> Serial port
      2 -> Parallel prot
      4 -> USB port
      5 -> LAN port
      6 -> USB port
    nPort;
      選擇輸出埠編號。
      當 nPortType 為 1 時, 1 -> com1, 2 -> com2.....
    filename;
      當 nPortType 為 0 時，資料則輸出至檔案，filename 為檔案名稱，可含路徑。
      當 nPortType 為 4 時，filename 指的是想開啟的USB的index, 由index由1開始.
      當 nPortType 為 5 時，filename 指的是想開啟的IP Address, 使用TCP/IP, port 9100去開啟.
      當 nPortType 為 6 時，filename 指的是想開啟的USB的裝置路徑.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_CreatePort(1, 1, NULL);
    A_CreatePort(0, 0, "C:\\out.prn");
    A_CreatePort(5, 0, "192.168.1.3");
  VB: VBA: VB.net:
    Call A_CreatePort(1, 1, null)
    Call A_CreatePort(0, 0, "C:\\out.prn")
    Call A_CreatePort(5, 0, "192.168.1.3")

說明：  A_CreatePort() 函數會開啟你選擇的輸出埠或開啟你鍵入的輸出檔。
    而這個函數必須在所有函數之前執行。
    A_CreatePrn(), A_CreateUSBPort(), A_CreateNetPort() 和 A_CreatePort()不能同時使用。

*******************************************************************************
A_CreateUSBPort()
A_CreateNetPort()
===============================================================================
功能： 開啟 PPLA Library 工作。
       使用 A_CreateUSBPort() 前需先呼叫 A_GetUSBBufferLen(), 
       這是為了和 A_EnumUSB() 及 A_GetUSBDeviceInfo() 同步。
       使用 A_CreateNetPort() 前需先呼叫 A_GetNetPrinterBufferLen(), 
       這是為了和 A_EnumNetPrinter() 同步。

語法：
  VC:
    int A_CreateUSBPort(int nPort);
    int A_CreateNetPort(int nPort);
  VB: VBA:
    Declare Function A_CreateUSBPort(ByVal nPort As Long) As Long
    Declare Function A_CreateNetPort(ByVal nPort As Long) As Long
  VB.net:
    Declare Function A_CreateUSBPort(ByVal nPort As Integer) As Integer
    Declare Function A_CreateNetPort(ByVal nPort As Integer) As Integer

參數：         
    nPort;
      USB 和 LAN 的傳輸埠, nPort由1開始.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    int nLen;
    nLen = A_GetUSBBufferLen();
    if (nLen) {
      A_CreateUSBPort(1);
    }
    nLen = A_GetNetPrinterBufferLen();
    if (nLen) {
      A_CreateNetPort(1);
    }
  VB: VBA: VB.net:
    Dim nLen As Long
    nLen = A_GetUSBBufferLen()
    If nLen Then
      Call A_CreateUSBPort(1)
    End If
    nLen = A_GetNetPrinterBufferLen()
    If nLen Then
      Call A_CreateNetPort(1)
    End If

說明：  A_CreateUSBPort() 和 A_CreateNetPort()函數會開啟你選擇的輸出埠或
    開啟你鍵入的輸出檔。而這個函數必須在所有函數之前執行。
    A_CreatePrn(), A_CreateUSBPort(), A_CreateNetPort() 和 A_CreatePort()不能同時使用。

*******************************************************************************
A_ClosePrn()
===============================================================================
功能：  關閉 A_Printer 工作。

語法：
  VC:
    void A_ClosePrn(void);
  VB: VBA: VB.net:
    Declare Sub A_ClosePrn()

範例：
  VC:
    A_ClosePrn();
  VB: VBA: VB.net:
    Call A_ClosePrn()

說明：  這個 A_ClosePrn 函數會關閉你選擇的輸出埠或關閉你開啟的輸出檔。而這個函
    數必須在所有函數之後執行。

*******************************************************************************
A_Bar2d_Maxi()
A_Bar2d_Maxi_Ori()
===============================================================================
功能：  印出一個 Maxi Code 2D Barcode。

語法：
  VC:
    int A_Bar2d_Maxi(int x, int y, int primary, int secondary,
      int country, int service, char mode, int numeric, LPCTSTR data);
    int A_Bar2d_Maxi_Ori(int x, int y, int ori, int primary, int secondary, 
      int country, int service, char mode, int numeric, LPCTSTR data);
  VB: VBA:
    Declare Function A_Bar2d_Maxi(ByVal x As Long, ByVal y As Long, _
      ByVal primary As Long, ByVal secondary As Long, ByVal country As Long, _
      ByVal service As Long, ByVal mode As Byte, ByVal numeric As Long, _
      ByVal data As String) As Long
    Declare Function A_Bar2d_Maxi_Ori(ByVal x As Long, ByVal y As Long, _
      ByVal ori As Long, ByVal primary As Long, ByVal secondary As Long, _
      ByVal country As Long, ByVal service As Long, ByVal mode As Byte, _
      ByVal numeric As Long, ByVal data As String) As Long
  VB.net:
    Declare Function A_Bar2d_Maxi(ByVal x As Integer, ByVal y As Integer, _
      ByVal primary As Integer, ByVal secondary As Integer, ByVal country As Integer, _
      ByVal service As Integer, ByVal mode As Byte, ByVal numeric As Integer, _
      ByVal data As String) As Integer
    Declare Function A_Bar2d_Maxi_Ori(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal primary As Integer, ByVal secondary As Integer, _
      ByVal country As Integer, ByVal service As Integer, ByVal mode As Byte, _
      ByVal numeric As Integer, ByVal data As String) As Integer

參數：
    x;
      X 座標。(100 = 1 英吋)
    y;
      Y 座標。(100 = 1 英吋)
    ori;
      列印方向定位，1:0°、2:90°、3:180°、4:270°
    primary;
      A 5-位數 primary zip code.
    secondary;
      A 4-位數 secondary zip code.
    country;
      A 3-位數 country code.
    service;
      A 3-位數 service code.
    mode;
      附加功能，如下表：
      +----+-------------------------------------+
      |mode|           功能說明                  |
      +----+-------------------------------------+
      | A  |對數字自動增加跳號.                  |
      +----+-------------------------------------+
      | B  |對字母自動增加跳號.                  |
      +----+-------------------------------------+
      | C  |對數字自動減少跳號.                  |
      +----+-------------------------------------+
      | D  |對字母自動減少跳號.                  |
      +----+-------------------------------------+
      | T  |改變終結字元.                        |
      +----+-------------------------------------+
      | N  |無須任何功能.                        |
      +----+-------------------------------------+
    numeric;
      自動增加或減少跳號量。範圍：0~99
      當有附加功能時此欄位必須存在。
    data;
      資料字串，最多84個字元。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Bar2d_Maxi(100, 200, 32987, 444, 40, 55, 'N', 2, "TO 123");
    A_Bar2d_Maxi_Ori(100, 200, 0, 32987, 444, 40, 55, 'N', 2, "TO 123");
  VB: VBA: VB.net:
    Call A_Bar2d_Maxi(100, 200, 32987, 444, 40, 55, Asc("N"), 2, "TO 123")
    Call A_Bar2d_Maxi_Ori(100, 200, 0, 32987, 444, 40, 55, Asc("N"), 2, "TO 123")

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

*******************************************************************************
A_Bar2d_PDF417()
A_Bar2d_PDF417_Ori()
===============================================================================
功能：  印出一個 PDF-417 2D Barcode。

語法：
  VC:
    int A_Bar2d_PDF417(int x, int y, int narrow, int width, char normal,
      int security, int aspect, int row, int column, char mode, int numeric,
      LPCTSTR data);
    int A_Bar2d_PDF417_Ori(int x, int y, int ori, int narrow, int width, char normal,
      int security, int aspect, int row, int column, char mode, int numeric,
      LPCTSTR data);
  VB: VBA:
    Declare Function A_Bar2d_PDF417(ByVal x As Long, ByVal y As Long, _
      ByVal narrow As Long, ByVal width As Long, ByVal normal As Byte, _
      ByVal security As Long, ByVal aspect As Long, ByVal row As Long, _
      ByVal column As Long, ByVal mode As Byte, ByVal numeric As Long, _
      ByVal data As String) As Long
    Declare Function A_Bar2d_PDF417_Ori(ByVal x As Long, ByVal y As Long, _
      ByVal ori As Long, ByVal narrow As Long, ByVal width As Long, _
      ByVal normal As Byte, ByVal security As Long, ByVal aspect As Long, _
      ByVal row As Long, ByVal column As Long, ByVal mode As Byte, _
      ByVal numeric As Long, ByVal data As String) As Long
  VB.net:
    Declare Function A_Bar2d_PDF417(ByVal x As Integer, ByVal y As Integer, _
      ByVal narrow As Integer, ByVal width As Integer, ByVal normal As Byte, _
      ByVal security As Integer, ByVal aspect As Integer, ByVal row As Integer, _
      ByVal column As Integer, ByVal mode As Byte, ByVal numeric As Integer, _
      ByVal data As String) As Integer
    Declare Function A_Bar2d_PDF417_Ori(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal narrow As Integer, ByVal width As Integer, _
      ByVal normal As Byte, ByVal security As Integer, ByVal aspect As Integer, _
      ByVal row As Integer, ByVal column As Integer, ByVal mode As Byte, _
      ByVal numeric As Integer, ByVal data As String) As Integer

參數：
    x;
      X 座標。(100 = 1 英吋)
    y;
      Y 座標。(100 = 1 英吋)
    ori;
      列印方向定位，1:0°、2:90°、3:180°、4:270°
    narrow;
      NARROW bar 寬度，範圍 0～24。
    width;
      WIDE bar 寬度，範圍 0～24。
    normal;
      F:normal, T:truncated.
    security;
      0～8:security level.
    aspect;
      0～99:aspect ratio,0 stands for 1:2.
    row;
      3～90:row number,0 for best fit.
    column;
      1～30:column number,0 for best fit.
    mode;
      附加功能，如下表：
      +----+-------------------------------------+
      |mode|           功能說明                  |
      +----+-------------------------------------+
      | A  |對數字自動增加跳號.                  |
      +----+-------------------------------------+
      | B  |對字母自動增加跳號.                  |
      +----+-------------------------------------+
      | C  |對數字自動減少跳號.                  |
      +----+-------------------------------------+
      | D  |對字母自動減少跳號.                  |
      +----+-------------------------------------+
      | T  |改變終結字元.                        |
      +----+-------------------------------------+
      | N  |無須任何功能.                        |
      +----+-------------------------------------+          
    numeric;
      自動增加或減少跳號量。範圍：0～99
      當有附加功能時此欄位必須存在。
      當 mode 為 T 時，此攔為終結字元值(十進位)。
    data;
      資料字串。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Bar2d_PDF417(260, 0, 0, 0, 'F', 0, 0, 10, 2, 'B', 1, "ARGOXINFO");
    A_Bar2d_PDF417_Ori(260, 0, 0, 0, 'F', 0, 0, 10, 2, 'T', 0,
      "ARGOXINFO\r\nData 12345\r\nData 555");
  VB: VBA: VB.net:
    Call A_Bar2d_PDF417(260, 0, 0, 0, Asc("F"), 0, 0, 10, 2, Asc("B"), 1, "ARGOXINFO")
    Call A_Bar2d_PDF417_Ori(260, 0, 0, 0, Asc("F"), 0, 0, 10, 2, Asc("T"), 0, _
      "ARGOXINFO\r\nData 12345\r\nData 555")

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

*******************************************************************************
A_Bar2d_DataMatrix()
===============================================================================
功能：  印出一個 DataMatrix Code 2D Barcode。

語法：
  VC:
    int A_Bar2d_DataMatrix(int x, int y, int rotation, int hor_mul, int ver_mul,
      int ECC, int data_format, int num_rows, int num_col, char mode, int numeric,
      LPCTSTR data);
  VB: VBA:
    Declare Function A_Bar2d_DataMatrix(ByVal x As Long, ByVal y As Long, _
      ByVal rotation As Long, ByVal hor_mul As Long, ByVal ver_mul As Long, _
      ByVal ECC As Long, ByVal data_format As Long, ByVal num_rows As Long, _
      ByVal num_col As Long, ByVal mode As Byte, ByVal numeric As Long, _
      ByVal data As String) As Long
  VB.net:
    Declare Function A_Bar2d_DataMatrix(ByVal x As Integer, ByVal y As Integer, _
      ByVal rotation As Integer, ByVal hor_mul As Integer, ByVal ver_mul As Integer, _
      ByVal ECC As Integer, ByVal data_format As Integer, ByVal num_rows As Integer, _
      ByVal num_col As Integer, ByVal mode As Byte, ByVal numeric As Integer, _
      ByVal data As String) As Integer

參數：
    x;
      X 座標。(100 = 1 英吋)
    y;
      Y 座標。(100 = 1 英吋)
    rotation;
      列印方向定位，1:0°、2:90°、3:180°、4:270°
    hor_mul;
      水平放大倍數。值:1 ~ 24
    ver_mul;
      垂直放大倍數。值:1 ~ 24
    ECC;
      偵錯等級。固定值:200
    data_format;
      資料分類。固定值:0
    num_rows;
      row number, 值:10,12,14,16,18,20,22,24,26,32,
      36,40,44,,48,52,64,72,80,88,96,104,120,132,144
    num_col;
      column number, 值:10,12,14,16,18,20,22,24,26,32,
      36,40,44,,48,52,64,72,80,88,96,104,120,132,144
    mode;
      附加功能，如下表：
      +----+-------------------------------------+
      |mode|           功能說明                  |
      +----+-------------------------------------+
      | A  |對數字自動增加跳號.                  |
      +----+-------------------------------------+
      | B  |對字母自動增加跳號.                  |
      +----+-------------------------------------+
      | C  |對數字自動減少跳號.                  |
      +----+-------------------------------------+
      | D  |對字母自動減少跳號.                  |
      +----+-------------------------------------+
      | T  |改變終結字元.                        |
      +----+-------------------------------------+
      | N  |無須任何功能.                        |
      +----+-------------------------------------+            
    numeric;
      自動增加或減少跳號量。範圍：0~99
      當有附加功能時此欄位必須存在。
    data;
      資料字串。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Bar2d_DataMatrix(100, 100, 1, 8, 8, 200, 0, 24, 24, 'N', 2, "DATAMATRIX");
  VB: VBA: VB.net:
    Call A_Bar2d_DataMatrix(100, 100, 1, 8, 8, 200, 0, 24, 24, Asc("N"), 2, "DATAMATRIX")

說明：  這個 A_Bar2d_DataMatrix 函數可以列印出一個 DataMatrix 2D Barcode。

*******************************************************************************
A_Clear_Memory()
===============================================================================
功能：  清除 Printer 內 Flash Memory 的資料。

語法：
  VC:
    void A_Clear_Memory(void);
  VB: VBA: VB.net:
    Declare Sub A_Clear_Memory()

範例：
  VC:
    A_Clear_Memory();
  VB: VBA: VB.net:
    Call A_Clear_Memory()

說明：  這個 A_Clear_Memory 函數清除 Printer 內 Flash Memory 的圖形、軟
    體字形。因為圖形、字形會一直累積在 memory 造成 overflow，正常時函數須在
    Print_Out() 之前送出。而當 memory 充滿指令，Printer 就會刪除先前載入的
    圖形和字形，為避免發生不當的刪除，須先在 A_Print_Out() 之前送出。

*******************************************************************************
A_Del_Graphic()
===============================================================================
功能：  刪除儲存在印表機 RAM 或 Flash Memory 內的圖形。

語法：
  VC:
    int A_Del_Graphic(int mem_mode, char graphic[10]);
  VB: VBA:
    Declare Function A_Del_Graphic(ByVal mem_mode As Long, _
      ByVal graphic As String) As Long
  VB.net:
    Declare Function A_Del_Graphic(ByVal mem_mode As Integer, _
      ByVal graphic As String) As Integer

參數：
    mem_mode;
      記憶體模式， 1 => RAM, 2 => Flash Memory
    graphic;
      圖形名稱，最多 9 個字。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Del_Graphic(1, "AA");
  VB: VBA: VB.net:
    Call A_Del_Graphic(1, "AA")

說明：  這個 A_Del_Graphic 函數會刪除儲存在印表機 RAM 或 Flash Memory 內的圖形
    ，你輸入的圖形名稱。當你刪除它後，將不能再還原，但可以重新載入。

*******************************************************************************
A_Draw_Box()
===============================================================================
功能：  畫一個框。

語法：
  VC:
    int A_Draw_Box(char mode, int x, int y, int width, int height, int top, int side);
  VB: VBA:
    Declare Function A_Draw_Box(ByVal mode As Byte, ByVal x As Long, ByVal y As Long, _
      ByVal width As Long, ByVal height As Long, ByVal top As Long, _
      ByVal side As Long) As Long
  VB.net:
    Declare Function A_Draw_Box(ByVal mode As Byte, ByVal x As Integer, _
      ByVal y As Integer, ByVal width As Integer, ByVal height As Integer, _
      ByVal top As Integer, ByVal side As Integer) As Integer

參數：
    mode;
      設定邏輯 OR 或 XOR 功能。A:XOR、N:OR,一般是 XOR 選項。
    x;
      X 座標。
    y;
      Y 座標。
    width;
      指定框的寬度，範圍：0～9999。
    height;
      指定框的高度，範圍：0～9999。
    top;
      指定框的頂及底線條厚度，範圍：0～9999。
    side;
      指定框兩側邊線條厚度，範圍：0～9999

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Draw_Box('N', 260, 30, 130, 105, 4, 4);
  VB: VBA: VB.net:
    Call A_Draw_Box(Asc("N"), 260, 30, 130, 105, 4, 4)

說明：  這個 A_Draw_Box 函數會畫一個屬性是 "OR" 或 "XOR" 的框。

*******************************************************************************
A_Draw_Line()
===============================================================================
功能：  畫一條線。

語法：
  VC:
    int A_Draw_Line(char mode, int x, int y, int width, int height);
  VB: VBA:
    Declare Function A_Draw_Line(ByVal mode As Byte, ByVal x As Long, _
      ByVal y As Long, ByVal width As Long, ByVal height As Long) As Long
  VB.net:
    Declare Function A_Draw_Line(ByVal mode As Byte, ByVal x As Integer, _
      ByVal y As Integer, ByVal width As Integer, ByVal height As Integer) As Integer

參數：
    mode;
      設定邏輯 OR 或 XOR 功能。A =>XOR、N =>OR, 一般是 XOR 選項。
    x;
      X 座標。
    y;
      Y 座標。
    width;
      指定線條的寬度，範圍：0～9999。
    height;
      指定線條的高度，範圍：0～9999。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Draw_Line('A', 285, 77, 2, 30);
  VB: VBA: VB.net:
    Call A_Draw_Line(Asc("A"), 285, 77, 2, 30)

說明：  這個 A_Draw_Line 函數會畫一個屬性是 "OR" 或 "XOR" 的線條。

*******************************************************************************
A_Feed_Label()
===============================================================================
功能：  送一張標籤。

語法：
  VC:
    void A_Feed_Label(void);
  VB: VBA: VB.net:
    Declare Sub A_Feed_Label()

範例：
  VC:
    A_Feed_Label();
  VB: VBA: VB.net:
    Call A_Feed_Label()

說明：  這個 A_Feed_Label 函數當不是設定為連續紙時，將會吐一張標籤一直到被檢測
    出 gap 為止。當是設定為連續紙時，會吐一張固定長度的標籤。基本上，這函數
    意同於按 "Feed" 鍵一樣。

*******************************************************************************
A_Get_DLL_Version()
A_Get_DLL_VersionA()
  ===============================================================================
功能：  取得或秀出此函數庫版本資訊。

語法：
  VC:
    char* A_Get_DLL_Version(int nShowMessage);
    int A_Get_DLL_VersionA(int nShowMessage);
  VB: VBA:
    Declare Function A_Get_DLL_Version(ByVal nShowMessage As Long) As Long
    Declare Function A_Get_DLL_VersionA(ByVal nShowMessage As Long) As Long
  VB.net:
    Declare Function A_Get_DLL_Version(ByVal nShowMessage As Integer) As String
    Declare Function A_Get_DLL_VersionA(ByVal nShowMessage As Integer) As Integer

參數：
    nShowMessage;
      0 -> 訊息視窗不顯現.
      1 -> 訊息視窗顯現。

傳回值：
    A_Get_DLL_Version();  傳回版本資訊字串，失敗則傳回 NULL。
    A_Get_DLL_VersionA();  return version value.
                           主版號 = (return version value) / 100.
                           子版號 = (return version value) % 100.

範例：
  VC:
    int nVersion, nMainVersion, nSubVersion;
    nVersion = A_Get_DLL_VersionA(1);
    nMainVersion = nVersion / 100;
    nSubVersion = nVersion % 100;
  VB: VBA:
    Dim nVersion, nMainVersion, nSubVersion As Long
    nVersion = A_Get_DLL_VersionA(1)
    nMainVersion = Int(nVersion / 100)
    nSubVersion = nVersion Mod 100
  VB.net:
    Dim nVersion, nMainVersion, nSubVersion As Integer
    nVersion = A_Get_DLL_VersionA(1)
    nMainVersion = nVersion / 100
    nSubVersion = nVersion Mod 100

說明：  這個 A_Get_DLL_Version 函數，讓使用者取得或秀出此函數庫版本資訊。
    由於 A_Get_DLL_Version() 是回傳字串, 在 VB 和 VBA 的開發上, 需要使用 
    RtlMoveMemory() 去轉換然後才能取得, 此函式在使用上有技術上的難度, 
    因此 VB 和 VBA 的開發建議不要使用此函式, 請改用 A_Get_DLL_VersionA(), 
    若一定要使用 A_Get_DLL_Version(), 請參考 MSDN.

*******************************************************************************
A_Get_Graphic()
===============================================================================
功能：  列印一個圖形並將圖形儲存在印表機內的 RAM 或 Flash Memory, 使用者需知圖檔格式,
        否則會造成無法列印; 另外BMP格式的圖形, 其列印結果會呈現反白效果, 需注意。

語法：
  VC:
    int A_Get_Graphic(int x, int y, int mem_mode, char format, LPCTSTR filename);
  VB: VBA:
    Declare Function A_Get_Graphic(ByVal x As Long, ByVal y As Long, _
      ByVal mem_mode As Long, ByVal format As Byte, ByVal filename As String) As Long
  VB.net:
    Declare Function A_Get_Graphic(ByVal x As Integer, ByVal y As Integer, _
      ByVal mem_mode As Integer, ByVal format As Byte, _
      ByVal filename As String) As Integer

參數：
    x;
      X 座標。
    y;
      Y 座標。
    mem_mode;
      記憶體模式， 1 => RAM, 2 => Flash Memory
      注意:Flash有使用壽命的限制,除非圖形資料要重複使用,否則建議將圖形存到RAM.
    format;
      圖形檔格式，如下表：
      +------+---------------------------+---------+
      |format|圖形檔格式                 |  方向   |
      +------+---------------------------+---------+
      |  B   |1 和 8-bits BMP file format|  正     |
      +------+---------------------------+---------+
      |  b   |1 和 8-bits BMP file format|         |
      +------+---------------------------+---------+
      |  I   |8-bits IMG file format     |  正     |
      +------+---------------------------+---------+
      |  i   |8-bits IMG file format     |         |
      +------+---------------------------+---------+
      |  P   |8-bits PCX file format     |  正     |
      +------+---------------------------+---------+
      |  p   |8-bits PCX file format     |         |
      +------+---------------------------+---------+          
    filename;
      圖形檔名稱，可含路徑。
      格式如：XXXXXXXX.XXX 或 X:\\XXX\\XXX.XXX

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Get_Graphic(275, 50, 1, 'B', "bb.bmp");
  VB: VBA: VB.net:
    Call A_Get_Graphic(275, 50, 1, Asc("B"), "bb.bmp")

說明：  這個 A_Get_Graphic 函數會列印一個圖形並將圖形儲存在印表機內的 RAM 或
    Flash Memory。

*******************************************************************************
A_Get_Graphic_ColorBMP()
A_Get_Graphic_ColorBMPEx()
A_Get_Graphic_ColorBMP_HBitmap()
===============================================================================
功能：  將 BMP 圖檔轉換成灰階模式，並將圖形儲存在印表機內的 RAM 或 Flash Memory。

語法：
  VC:
    int A_Get_Graphic_ColorBMP(int x, int y, int mem_mode, char format,
      LPCTSTR filename);
    int A_Get_Graphic_ColorBMPEx(int x, int y, int nWidth, int nHeight,
      int rotate, int mem_mode, char format, LPCTSTR id_name, LPCTSTR filename);
    int A_Get_Graphic_ColorBMP_HBitmap(int x, int y, int nWidth, int nHeight,
      int rotate, int mem_mode, char format, LPCTSTR id_name, HBITMAP hbm);
  VB: VBA:
    Declare Function A_Get_Graphic_ColorBMP(ByVal x As Long, ByVal y As Long, _
      ByVal mem_mode As Long, ByVal format As Byte, ByVal filename As String) As Long
    Declare Function A_Get_Graphic_ColorBMPEx(ByVal x As Long, _
      ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
      ByVal rotate As Long, ByVal mem_mode As Long, ByVal format As Byte, _
      ByVal id_name As String, ByVal filename As String) As Long
    Declare Function A_Get_Graphic_ColorBMP_HBitmap(ByVal x As Long, _
      ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
      ByVal rotate As Long, ByVal mem_mode As Long, ByVal format As Byte, _
      ByVal id_name As String, ByVal hbm As Long) As Long
  VB.net:
    Declare Function A_Get_Graphic_ColorBMP(ByVal x As Integer, ByVal y As Integer, _
      ByVal mem_mode As Integer, ByVal format As Byte, _
      ByVal filename As String) As Integer
    Declare Function A_Get_Graphic_ColorBMPEx(ByVal x As Integer, _
      ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, _
      ByVal rotate As Integer, ByVal mem_mode As Integer, ByVal format As Byte, _
      ByVal id_name As String, ByVal filename As String) As Integer
    Declare Function A_Get_Graphic_ColorBMP_HBitmap(ByVal x As Integer, _
      ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, _
      ByVal rotate As Integer, ByVal mem_mode As Integer, ByVal format As Byte, _
      ByVal id_name As String, ByVal hbm As Integer) As Integer
參數：
    x;
      X 座標。
    y;
      Y 座標。
    nWidth;
      此參數表示原圖縮放後的圖形寬度，0表示使用原圖寬度。
    nHeight;
      此參數表示原圖縮放後的圖形高度，0表示使用原圖高度。
    rotate;
      此參數表示圖形縮放後旋轉的方向，'0'是 0°，'1'是90°、'2'是180°，'3'是270°。
    mem_mode;
      儲存位置， 1 => RAM, 2 => Flash Memory
      注意: Flash有使用壽命的限制, 除非圖形資料要重複使用, 否則建議將圖形存到RAM。
    format;
      圖形檔格式，如下表：
      +------+------------+---------+
      |format| 圖形檔格式 |  方向   |
      +------+------------+---------+
      |  B   | BMP format |  正     |
      +------+------------+---------+
      |  b   | BMP format |         |
      +------+------------+---------+            
    id_name;
      給予一個識別名稱存放於印表機內，以後直接使用 A_Load_Graphic()即可將舊圖呼叫出來。
    filename;
      圖形檔名稱，可包含路徑。
      格式如：XXXXXXXX.XXX 或 X:\\XXX\\XXX.XXX
    hbm;
      GDI 的 HBITMAP HANDLE, 只支援 IMAGE_BITMAP 格式。
      
傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Get_Graphic_ColorBMP(30, 20, 1, 'B', "bb.bmp");
    A_Get_Graphic_ColorBMPEx(30, 20, 200, 150, 2, 1, 'B', "bb1", "bb.bmp");//180 angle.
    HANDLE himage = LoadImage(NULL,"bb.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    A_Get_Graphic_ColorBMP_HBitmap(30, 20, 250, 80, 1, 1, 'B', "bb2", (HBITMAP)himage);//90 angle.
  VB: VBA: 
    Const IMAGE_BITMAP = 0
    Const LR_LOADFROMFILE = &H10
    Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, _
            ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, _
            ByVal un2 As Long) As Long
    Private Declare Function DeleteObject Lib "Gdi32" (ByVal ho As Long) As Long
      
    Call A_Get_Graphic_ColorBMP(30, 20, 1, Asc("B"), "bb.bmp");
    Call A_Get_Graphic_ColorBMPEx(30, 20, 200, 150, 2, 1, Asc("B"), "bb1", "bb.bmp") ' 180 angle.
    Dim himage As Long
    himage = LoadImage(0, "bb.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)
    Call A_Get_Graphic_ColorBMP_HBitmap(30, 20, 250, 80, 1, 1, Asc("B"), "bb2", himage) ' 90 angle.
    If himage Then
        Call DeleteObject(himage)
    End If    
  Vb.net:
    Const IMAGE_BITMAP = 0
    Const LR_LOADFROMFILE = &H10
    Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Integer, _
            ByVal lpsz As String, ByVal un1 As Integer, ByVal n1 As Integer, ByVal n2 As Integer, _
            ByVal un2 As Integer) As Integer
              
    Call A_Get_Graphic_ColorBMP(30, 20, 1, Asc("B"), "bb.bmp");
    Call A_Get_Graphic_ColorBMPEx(30, 20, 200, 150, 2, 1, Asc("B"), "bb1", "bb.bmp") ' 180 angle.
    Dim himage As Integer
    himage = LoadImage(0, "bb.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)
    Call A_Get_Graphic_ColorBMP_HBitmap(30, 20, 250, 80, 1, 1, Asc("B"), "bb2", himage) ' 90 angle.  

說明：  這個 A_Get_Graphic_ColorBMP() 函數可輸入任何位元數的 BMP 圖檔，並自動
    轉換為黑白灰階圖檔送至印表機列印。
    A_Get_Graphic_ColorBMPEx() 和 A_Get_Graphic_ColorBMP_HBitmap() 函數可做放大，
    縮小及旋轉的功能，分別可利用檔名及 GDI 的 HBITMAP HANDLE 當資料來源。

*******************************************************************************
A_Initial_Setting()
===============================================================================
功能：  前置處理。

語法：
  VC:
    int A_Initial_Setting(int Type, LPCTSTR Source);
  VB: VBA:
    Declare Function A_Initial_Setting(ByVal ttype As Long, _
      ByVal Source As String) As Long
  VB.net:
    Declare Function A_Initial_Setting(ByVal ttype As Integer, _
      ByVal Source As String) As Integer

參數：
    Type;
      選擇輸入模式，值為 0 -> 輸入字串，1 -> 輸入檔案。
    Source;
      資料來源，可為字串或檔案名稱，可含路徑。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    LPCTSTR aa = "122300001000200EXAMPLE\r\n";
    A_Initial_Setting(0, aa);
      or
    A_Initial_Setting(1, "initfile.txt");
  VB: VBA: VB.net:
    Dim aa As String
    aa = "122300001000200EXAMPLE" + Chr(13) + Chr(10)
    Call A_Initial_Setting(0, aa)
               or
    Call A_Initial_Setting(1,"initfile.txt")

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

*******************************************************************************
A_WriteData()
===============================================================================
功能：  用來立即將資料傳送出或暫時寫入暫存區中。

語法：
  VC:
    int A_WriteData(int IsImmediate, LPCTSTR pbuf, DWORD length);
  VB: VBA:
    Declare Function A_WriteData(ByVal IsImmediate As Long, _
      ByVal pbuf As String, ByVal length As Long) As Long  
  VB.net:
    Declare Function A_WriteData(ByVal IsImmediate As Integer, _
      ByVal pbuf As Byte(), ByVal length As ULong) As Integer

參數：
    IsImmediate;
      1為立即傳送, 只傳pbuf中的內容至輸出埠;
      0為將資料加到暫存區後, 等呼叫A_Print_Out() 時才傳送。
    pbuf;
      要傳送的資料指標。
    length;
      pbuf的資料長度。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    const char sznop1[] = "nop_front\r\n";
    const char sznop2[] = "nop_middle\r\n";
    A_WriteData(0, sznop2, (DWORD)strlen(sznop2));
    A_WriteData(1, sznop1, (DWORD)strlen(sznop1));
  VB: VBA:
    Dim sznop1 As String = "nop_front" + vbCrLf
    Dim sznop2 As String = "nop_middle" + vbCrLf
    Call A_WriteData(0, sznop2, Len(sznop2))
    Call A_WriteData(1, sznop1, Len(sznop1))  
  VB.net:
    Dim encAscII = System.Text.Encoding.ASCII
    Dim sznop1 As String = "nop_front" + vbCrLf
    Dim sznop2 As String = "nop_middle" + vbCrLf
    Call A_WriteData(0, encAscII.GetBytes(sznop2), sznop2.Length)
    Call A_WriteData(1, encAscII.GetBytes(sznop1), sznop1.Length)

說明：  此函式用來將使用者想要對印表機下達的控制指令或任何列印資料, 皆可利用此
    函式來完成。

*******************************************************************************
A_ReadData()
===============================================================================
功能：  取得印表機中的資料。

語法：
  VC:
    int A_ReadData(LPTSTR pbuf, DWORD length, DWORD dwTimeoutms);
  VB: VBA:
    Declare Function A_ReadData(ByVal pbuf As String, ByVal length As Long, _
      ByVal dwTimeoutms As Long) As Long
  VB.net:
    Declare Function A_ReadData(ByVal pbuf As Byte(), ByVal length As ULong, _
      ByVal dwTimeoutms As ULong) As Integer

參數：
    pbuf;
      要接收回傳資料的指標。如果它是空指標, 則不填資料。
    length;
      要讀取的資料大小。
    dwTimeoutms;
      計數時間, 也就是讀取資料最長的時間, 單位為ms。

傳回值：
    已讀取的資料大小。

範例：
  VC:
    int ret;
    char temp[10]={0};
    A_WriteData(1, "\x01\x46\r\n", 4);//<SOH>F
    ret = A_ReadData(temp, 2, 1000);//1 second.
  VB: VBA:
    Dim ret As Integer
    Dim temp As String
    temp = Space(10)
    temp = Chr(1) + Chr(70) + vbCrLf
    Call A_WriteData(1, temp, 4)
    ret = A_ReadData(temp, 2, 1000) '1 second. 
  VB.net:
    Dim ret As Integer
    Dim temp(10) As Byte
    temp(0) = &H1
    temp(1) = &H46
    temp(2) = &HD
    temp(3) = &HA
    Call A_WriteData(1, temp, 4)
    ret = A_ReadData(temp, 2, 1000) '1 second.

說明：  此函式用來讀取印表機的回傳資料, 所以請注意使用的通訊埠是否有資料回傳的
    能力。請和A_WriteData() 函數配合使用, 並參考"Argox programmer's manual"。

*******************************************************************************
A_Load_Graphic()
===============================================================================
功能：  列印一個儲存在RAM或Flash中的圖形。

語法：
  VC:
    int A_Load_Graphic(int x, int y, char graphic_name[10]);
  VB: VBA:
    Declare Function A_Load_Graphic(ByVal x As Long, ByVal y As Long, _
      ByVal graphic_name As String) As Long
  VB.net:
    Declare Function A_Load_Graphic(ByVal x As Integer, ByVal y As Integer, _
      ByVal graphic_name As String) As Integer

參數：
    x;
      X 座標。
    y;
      Y 座標。
    graphic_name;
      圖形檔名稱最大9個字元。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Load_Graphic(265, 35, "AB");
  VB: VBA: VB.net:
    Call A_Load_Graphic(265, 35, "AB")

說明：  這個 A_Load_Graphic 函數會列印一個之前載入過的圖檔，而圖形必須事先載入
    印表機內的 RAM 或 flash memory 儲存。

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

語法：
  VC:
    int A_Open_ChineseFont(char* path);
  VB: VBA:
    Declare Function A_Open_ChineseFont(ByVal path As String) As Long
  VB.net:
    Declare Function A_Open_ChineseFont(ByVal path As String) As Integer

參數：
    path;
      中文點矩陣字型檔案來源路徑。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Open_ChineseFont("C:\\ET3");
  VB: VBA: VB.net:
    Call A_Open_ChineseFont("C:\\ET3");

說明：  這個 A_Open_ChineseFont 函數開啟中文點矩陣字型檔案 (16*15 和 24*24)，供
    A_Prn_Text_Chinese 函數使用。

*******************************************************************************
A_Print_Form()
===============================================================================
功能：  列印一個 FORM (表格)，並輸入 FORM 的名稱，並設定寬及高的比例和跳號次數
    與列印份數。

語法：
  VC:
    int A_Print_Form(int width, int height, int copies, int amount, LPTSTR form_name);
  VB: VBA:
    Declare Function A_Print_Form(ByVal width As Long, ByVal height As Long, _
      ByVal copies As Long, ByVal amount As Long, ByVal form_name As String) As Long
  VB.net:
    Declare Function A_Print_Form(ByVal width As Integer, ByVal height As Integer, _
      ByVal copies As Integer, ByVal amount As Integer, _
      ByVal form_name As String) As Integer

參數：
    width;
      寬比，範圍：1 或 2。
    height;
      高比，範圍：1、2 或 3。
    copies;
      你想列印的份數，範圍：1～9999。
    amount;
      指定的數字將會使每跳一號印幾張，範圍：1～99。
    form_name;
      輸入 FORM 的名稱，可一個或多個一起，但必須用 "," 依序分別區隔開。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Print_Form(1, 1, 1, 1, "demo");
  VB: VBA: VB.net:
    Call A_Print_Form(1, 1, 1, 1, "demo")

說明：  這個 A_Print_Form 函數會送所有資料及表格到 Printer，這個函數使用前須先
    執行 A_Set_Form()，並在所有函數之後，A_ClosePrn() 之前執行。當使用此函
    數時，就不須執行 A_Print_Out()。這 width 和 height 兩參數，是設定寬與高
    的比例。當比例設為最大時，圖形可能會因放大而出現鋸齒狀。

*******************************************************************************
A_Print_Out()
===============================================================================
功能：  輸出所有資料並設定寬及高的比例和跳號次數與列印份數。

語法：
  VC:
    int A_Print_Out(int width, int height, int copies, int amount);
  VB: VBA:
    Declare Function A_Print_Out(ByVal width As Long, ByVal height As Long, _
      ByVal copies As Long, ByVal amount As Long) As Long
  VB.net:
    Declare Function A_Print_Out(ByVal width As Integer, ByVal height As Integer, _
      ByVal copies As Integer, ByVal amount As Integer) As Integer

參數：
    width;
      寬比，範圍：1 或 2。
    height;
      高比，範圍：1、2 或 3。
    copies;
      你想列印的份數，範圍：1～9999。
    amount;
      指定的數字將會使每跳一號印幾張，範圍：1～99。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Print_Out(1, 1, 3, 1);
  VB: VBA: VB.net:
    Call A_Print_Out(1, 1, 3, 1)

說明：  這個 A_Print_Out 函數會送所有資料到 Printer，這個函數使用須在所有函數之
    後，A_ClosePrn() 之前。這 width 和 height 兩參數，是設定寬與高的比例。
    當比例設為最大時，圖形可能會因放大而出現鋸齒狀。這 amount 參數指定的數
    字將會使跳號功能，每列印幾張跳號或減號一次。

*******************************************************************************
A_Prn_Barcode()
===============================================================================
功能：  印出一個條碼。

語法：
  VC:
    int A_Prn_Barcode(int x, int y, int ori, char type, int narrow, int width,
      int height, char mode, int numeric, LPTSTR data);
  VB: VBA:
    Declare Function A_Prn_Barcode(ByVal x As Long, ByVal y As Long, _
      ByVal ori As Long, ByVal typee As Byte, ByVal narrow As Long, _
      ByVal width As Long, ByVal height As Long, ByVal mode As Byte, _
      ByVal numeric As Long, ByVal data As String) As Long
  VB.net:
    Declare Function A_Prn_Barcode(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal typee As Byte, ByVal narrow As Integer, _
      ByVal width As Integer, ByVal height As Integer, ByVal mode As Byte, _
      ByVal numeric As Integer, ByVal data As String) As Integer

參數：
    x;
      X 座標。
    y;
      Y 座標。
    ori;
      列印方向定位，1:0°、2:90°、3:180°、4:270°
    type;
      Bar code 型式、如下表：
      +==========================================================================+
      |條碼型式    |資料長度  |檢測 |顯示資  |隱藏資料   |資料屬性     |條碼比例 |
      |            |          |碼   |料      |(Type)     |             |         |
      |            |          |     |(Type)  |           |             |         |
      +============+==========+=====+========+===========+=============+=========+
      |Code 3 of 9 |variable  |no   |'A'     |'a'        |0~9,A~Z,$%*+-|2:1~     |
      |            |          |     |        |           |./and space  |3:1      |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |UPC-A       |12 digis  |yes  |'B'     |'b'        |0~9          |2:3:4    |
      |            |(11+1)    |     |        |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |UPC-E       |7 digits  |yes  |'C'     |'c'        |0~9          |2:3:4    |
      |            |(6+1)     |     |        |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Interleaved |variable  |no   |'D'     |'d'        |0~9          |2:1~     |
      |2 of 5 (I25)|          |     |        |           |             |3:1      |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Code 128    |variable  |yes  |'E'     |'e'        |form code 0  |2:3:4    |
      |            |          |     |        |           |to 127(註1)  |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |EAN-13      |13 digits |yes  |'F'     |'f'        |0~9          |2:3:4    |
      |            |(12+1)    |     |        |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |ENA-8       |8 digits  |yes  |'G'     |'g'        |0~9          |2:3:4    |
      |            |(7+1)     |     |        |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |HBIC        |variable  |yes  |'H'     |'h'        |0~9,A~Z,$%*+-|2:1~     |
      |            |          |     |        |           |./and space  |3:1      |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Coda bar    |at least 3|no   |'I'     |'i'        |0~9,A~Z,$+-. |2:1~     |
      |            |characters|     |        |           |And /        |3:1      |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Interleaved |variable  |yes  |'J'     |'j'        |0~9          |2:1~     |
      |2 of 5 with +----------+     |        |           |             |3:1      |
      |a modulo 10 checksum   |     |        |           |             |         |
      +-----------------------+-----+--------+-----------+-------------+---------+
      |Plessey     |1~14      |yes  |'K'     |'k'        |0~9          |2:1~     |
      |            |digits    |     |        |           |             |3:1      |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Interleaved |variable  |yes  |'L'     |'l'        |0~9          |2:1~     |
      |2 of 5 with +----------+-----+--------+-----------+             |3:1      |
      |a modulo 10 checksum and shipping bearer bars     |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |UPC2        |2 digits  |no   |'M'     |'m'        |0~9          |2:3:4    |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |UPC5        |5 digits  |no   |'N'     |'n'        |0~9          |2:3:4    |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Code 93     |variable  |no   |'O'     |'o'        |0~9,A~Z,$%*+-|2:3:4    |
      |            |          |     |        |           |./and space  |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Postnet     |variable  |yes  |not     |'p'        |0~9          |         |
      |            |          |     |defined |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |UCC/EAN Code|20 digits |yes  |'Q'     |'q'        |0~9          |2:3:4    |
      |128         |(19+1)    |     |        |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |UCC/EAN Code|18 digits |yes  |'R'     |'r'        |0~9          |2:3:4    |
      |128 k-MART  |          |     |        |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |UCC/EAN Code|variable  |yes  |'S'     |'s'        |0~9          |2:3:4    |
      |128 Random  |          |     |        |           |             |         |
      |weight      |          |     |        |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |Telepen     |variable  |yes  |'T'     |'t'        |form code 0  |2:3:4    |
      |            |          |     |        |           |to 127       |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      |FIM         |1         |no   |not     |'v'        |A,B,C and D  |         |
      |            |character |     |defined |           |             |         |
      +------------+----------+-----+--------+-----------+-------------+---------+
      註1：此 Code 128 支援子集 A，B 和 C。此預設的的子集為 B; 此外，資料欄的
           開始字元 (A，B，C) 決定子集為何。因此為了防止資料誤判，請於你的資料前面額外
           加入一個字元 (A，B，C)。
           例如：子集 = B
                 條碼資料 = "Bar code"
                 輸出 = "BBar code"
      備註：請參考ARGOX PPLA Programmer Manual中的第A10.PROGRAMMING EXAMPLES FOR BAR CODES節
    narrow;
      NARROW bar 寬度，範圍 0～24。
    width;
      WIDE bar 寬度，範圍 0～24。
      備註：narrow 和 width 的值必須參考表格上的條碼比例。
    height;
      Bar code 高度，範圍 0～999。
    mode;
      附加功能，如下表：
      +----+-------------------------------------+
      |mode|           功能說明                  |
      +----+-------------------------------------+
      | A  |對數字自動增加跳號.                  |
      +----+-------------------------------------+
      | B  |對字母自動增加跳號.                  |
      +----+-------------------------------------+
      | C  |對數字自動減少跳號.                  |
      +----+-------------------------------------+
      | D  |對字母自動減少跳號.                  |
      +----+-------------------------------------+
      | N  |無須任何功能.                        |
      +----+-------------------------------------+          
    numeric;
      自動增加或減少跳號量。範圍：0～99.
      當有附加功能時此欄位必須存在。
    data;
      資料字串。

傳回值：
    0　-> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Prn_Barcode(150, 20, 4, 'A', 0, 0, 20, 'B', 1, "ABCD");
  VB: VBA: VB.net:
    Call A_Prn_Barcode(150, 20, 4, Asc("A"), 0, 0, 20, Asc("B"), 1, "ABCD")

說明：  這個 A_Prn_Barcode 函數可以列印出一個特定 Barcode。

*******************************************************************************
A_Prn_Text()
===============================================================================
功能：  印出一行文字。

語法：
  VC:
    int A_Prn_Text(int x, int y, int ori, int font, int type, int hor_factor,
        int ver_factor, char mode, int numeric, LPCTSTR data);
  VB: VBA:
    Declare Function A_Prn_Text(ByVal x As Long, ByVal y As Long, ByVal ori As Long, _
      ByVal font As Long, ByVal typee As Long, ByVal hor_factor As Long, _
      ByVal ver_factor As Long, ByVal mode As Byte, ByVal numeric As Long, _
      ByVal data As String) As Long
  VB.net:
    Declare Function A_Prn_Text(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal font As Integer, ByVal typee As Integer, _
      ByVal hor_factor As Integer, ByVal ver_factor As Integer, ByVal mode As Byte, _
      ByVal numeric As Integer, ByVal data As String) As Integer

參數：
    x;
      X 座標。
    y;
      Y 座標。
    ori;
      列印方向定位，1:0°、2:90°、3:180°、4:270°
    font;
      字型型式，如下表：
      備註：查閱字型表見 ARGOX User's Manual
    type;
      見下表：
      +--------------+-----+---------------------------+
      |font          |type |Font Type                  |
      +--------------+-----+---------------------------+
      |0,1,2,3,4,5,6,|0    |font 0~font 8 respectively.|
      |7,8           |     |                           |
      +--------------+-----+---------------------------+
      |9             |0~7  |ASD smooth fonts.          |
      |              |     |0:4points,  1:6points,     |
      |              |     |2:8points,  3:10points,    |
      |              |     |4:12points, 5:14points,    |
      |              |     |6:18points.                |
      +--------------+-----+---------------------------+
      |9             |xxx  |PCL soft font.             |
      |              |     |xxx : soft font ID with    |
      |              |     |      3 digits             |
      +--------------+-----+---------------------------+
      |11            |0~7  |Courier fonts,(0 represents|
      |              |     |symbol set)                |
      |              |     |0:Roman-8,  1:ECMA-94,     |
      |              |     |2:PC set,   3:PC set A,    |
      |              |     |4:PC set B, 5:Legal,       |
      |              |     |6:Greek,    7:Russian.     |
      +--------------+-----+---------------------------+
      |12            |0    |Font selection form font   |
      |              |     |board.                     |
      +--------------+-----+---------------------------+
    hor_factor;
      水平放大比例，範圍：0～24,0：Printer defuault。
    ver_factor;
      垂直放大比例，範圍：0～24,0：Printer defuault。
    mode;
      附加功能，如下表：
      +----+-------------------------------------+
      |mode|           功能說明                  |
      +----+-------------------------------------+
      | A  |對數字自動增加跳號.                  |
      +----+-------------------------------------+
      | B  |對字母自動增加跳號.                  |
      +----+-------------------------------------+
      | C  |對數字自動減少跳號.                  |
      +----+-------------------------------------+
      | D  |對字母自動減少跳號.                  |
      +----+-------------------------------------+
      | M  |鏡面反射模式.                        |
      +----+-------------------------------------+
      | N  |無須任何功能.                        |
      +----+-------------------------------------+
    numeric;
      自動增加或減少跳號量。範圍：0～99
      當有附加功能時此欄位必須存在。
    data;
      資料字串。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Prn_Text(310, 35, 1, 9, 0, 1, 1, 'N', 2, "PPLA COMMAND");
  VB: VBA: VB.net:
    Call A_Prn_Text(310, 35, 1, 9, 0, 1, 1, Asc("N"), 2, "PPLA COMMAND")

說明：  這個 A_Prn_Text 函數可以列印出一行文字。

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

語法：
  VC:
    int A_Prn_Text_Chinese(int x, int y, int fonttype, LPCTSTR id_name, 
      LPCTSTR data, int mem_mode);
  VB: VBA:
    Declare Function A_Prn_Text_Chinese(ByVal x As Long, ByVal y As Long, _
      ByVal fonttype As Long, ByVal id_name As String, ByVal data As String, _
      ByVal mem_mode As Long) As Long
  VB.net:
    Declare Function A_Prn_Text_Chinese(ByVal x As Integer, ByVal y As Integer, _
      ByVal fonttype As Integer, ByVal id_name As String, ByVal data As String, _
      ByVal mem_mode As Integer) As Integer

參數：
    x;
      X 座標。(dot)
    y;
      Y 座標。(dot)
    fonttype;
      矩陣字型選擇。0 -> 16*15、1 -> 24*24。
    id_name;
      給予一個識別名稱存放於印表機內，以後直接使用 A_Load_Graphic() 即可將舊圖呼叫出來。
    data;
      文字內容。
    mem_mode;
      記憶體模式， 1 => RAM, 2 => Flash Memory
      注意:Flash有使用壽命的限制,除非圖形資料要重複使用,否則建議將圖形存到RAM

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Open_ChineseFont("C:\\ET3");
    A_Prn_Text_Chinese(100, 100, 0, "A01", "國家利益當前ＡｂＣｃＤｄ", 1);
  VB: VBA: VB.net:
    Call A_Open_ChineseFont("C:\\ET3")
    Call A_Prn_Text_Chinese(100, 100, 0, "A01", "國家利益當前ＡｂＣｃＤｄ", 1)

說明：  這個 A_Prn_Text_Chinese 函數可以印出一行文字，使用中文點矩陣字型檔案
    (16*15 或 24*24)。

*******************************************************************************
A_Prn_Text_TrueType()
A_Prn_Text_TrueType_W()
A_Prn_Text_TrueType_Uni()
A_Prn_Text_TrueType_UniB()
===============================================================================
功能：  印出一行 True Type Font 文字。

語法：
  VC:
    int A_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 mem_mode);
    int A_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 mem_mode);
    int A_Prn_Text_TrueType_Uni(int x, int y, int FSize, LPCTSTR FType, int Fspin,
      int FWeight, int FItalic, int FUnline, int FStrikeOut, LPCTSTR id_name,
      LPCWSTR data, int format, int mem_mode);
    int A_Prn_Text_TrueType_UniB(int x, int y, int FSize, LPCTSTR FType, int Fspin,
      int FWeight, int FItalic, int FUnline, int FStrikeOut, LPCTSTR id_name, 
      LPCTSTR data, int format, int mem_mode);
  VB: VBA:
    Declare Function A_Prn_Text_TrueType(ByVal x As Long, ByVal y As Long, _
      ByVal FSize As Long, ByVal FType As String, ByVal Fspin As Long, _
      ByVal FWeight As Long, ByVal FItalic As Long, ByVal FUnline As Long, _
      ByVal FStrikeOut As Long, ByVal id_name As String, ByVal data As String, _
      ByVal mem_mode As Long) As Long
    Declare Function A_Prn_Text_TrueType_W(ByVal x As Long, ByVal y As Long, _
      ByVal FHeight As Long, ByVal FWidth As Long, ByVal FType As String, _
      ByVal Fspin As Long, ByVal FWeight As Long, ByVal FItalic As Long, _
      ByVal FUnline As Long, ByVal FStrikeOut As Long, ByVal id_name As String, _
      ByVal data As String, ByVal mem_mode As Long) As Long
    Declare Function A_Prn_Text_TrueType_Uni(ByVal x As Long, ByVal y As Long, _
      ByVal FSize As Long, ByVal FType As String, ByVal Fspin As Long, _
      ByVal FWeight As Long, ByVal FItalic As Long, ByVal FUnline As Long, _
      ByVal FStrikeOut As Long, ByVal id_name As String, ByRef data As Byte, _
      ByVal format As Long, ByVal mem_mode As Long) As Long
    Declare Function A_Prn_Text_TrueType_UniB(ByVal x As Long, ByVal y As Long, _
      ByVal FSize As Long, ByVal FType As String, ByVal Fspin As Long, _
      ByVal FWeight As Long, ByVal FItalic As Long, ByVal FUnline As Long, _
      ByVal FStrikeOut As Long, ByVal id_name As String, ByRef data As Byte, _
      ByVal format As Long, ByVal mem_mode As Long) As Long
  VB.net:
    Declare Function A_Prn_Text_TrueType(ByVal x As Integer, ByVal y As Integer, _
      ByVal FSize As Integer, ByVal FType As String, ByVal Fspin As Integer, _
      ByVal FWeight As Integer, ByVal FItalic As Integer, ByVal FUnline As Integer, _
      ByVal FStrikeOut As Integer, ByVal id_name As String, ByVal data As String, _
      ByVal mem_mode As Integer) As Integer
    Declare Function A_Prn_Text_TrueType_W(ByVal x As Integer, ByVal y As Integer, _
      ByVal FHeight As Integer, ByVal FWidth As Integer, ByVal FType As String, _
      ByVal Fspin As Integer, ByVal FWeight As Integer, ByVal FItalic As Integer, _
      ByVal FUnline As Integer, ByVal FStrikeOut As Integer, ByVal id_name As String, _
      ByVal data As String, ByVal mem_mode As Integer) As Integer
    Declare Function A_Prn_Text_TrueType_Uni(ByVal x As Integer, ByVal y As Integer, _
      ByVal FSize As Integer, ByVal FType As String, ByVal Fspin As Integer, _
      ByVal FWeight As Integer, ByVal FItalic As Integer, ByVal FUnline As Integer, _
      ByVal FStrikeOut As Integer, ByVal id_name As String, ByVal data As Byte(), _
      ByVal format As Integer, ByVal mem_mode As Integer) As Integer
    Declare Function A_Prn_Text_TrueType_UniB(ByVal x As Integer, ByVal y As Integer, _
      ByVal FSize As Integer, ByVal FType As String, ByVal Fspin As Integer, _
      ByVal FWeight As Integer, ByVal FItalic As Integer, ByVal FUnline As Integer, _
      ByVal FStrikeOut As Integer, ByVal id_name As String, ByVal data As Byte(), _
      ByVal format As Integer, ByVal mem_mode As Integer) As Integer

參數：
    x;
      X 座標。
    y;
      Y 座標。
    FSize;
      TrueType font size，單位為點(dot)。
    FHeight;
      字型高度，單位為點(dot)。
    FWidth;
      字型寬度，單位為點(dot)。
    FType;
      TrueType font 字型名稱。
    Fspin;
      TrueType font 字體旋轉。1 -> 0, 2 -> 90, 3 -> 180, 4 -> 270
    FWeight;
      TrueType font 字體粗細。
      0 and NULL and 400 -> 400 標準、
      100 -> 非常細、200 -> 極細、
      300 -> 細    、500 -> 中等、
      600 -> 半粗  、700 -> 粗  、
      800 -> 特粗  、900 -> 黑體。
    FItalic;
      TrueType font 字體斜體。0 -> FALSE、1 -> TRUE。
    FUnline;
      TrueType font 字體加底線。0 -> FALSE、1 -> TRUE。
    FStrikeOut;
      TrueType font 字體加刪除線。0 -> FALSE、1 -> TRUE。
    id_name;
      給予一個識別名稱存放於印表機內，以後直接使用A_Load_Graphic()即可將舊圖呼叫出來。
    data;
      文字內容。
      A_Prn_Text_TrueType_Uni()與A_Prn_Text_TrueType_UniB()所輸入的data格式為UTF-8、
      UTF-16或Unicode big endian之字串，且需為0結尾。
    format;
      決定Unicode data的解碼方式。
      0 -> 由字串開頭的BOM(Byte Order Mark)決定.
      1 -> UTF-16.
      2 -> Unicode big endian.
      3 -> UTF-8.
    mem_mode;
      圖形儲存位置， 1 => RAM, 2 => Flash Memory
      注意: Flash有使用壽命的限制, 除非圖形資料要重複使用, 否則建議將圖形存到RAM。
  
傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    char *ver, *pbuf = new char[128];
    A_Prn_Text_TrueType(20, 60, 30, "Arial", 1, 400, 0, 0, 0, "AA", 
      "TrueType Font", 1);//save in ram.
    A_Prn_Text_TrueType_W(20, 90, 20, 20, "Times New Roman", 1, 400, 0, 0, 0, "AB",
      "TT_W: 多字元測試", 1);
    A_Prn_Text_TrueType_Uni(20, 120, 30, "Times New Roman", 1, 400, 0, 0, 0, "AC",
      L"TT_Uni: 多字元測試", 1, 1);//UTF-16
    strcpy(pbuf, "\xFF\xFE");//UTF-16.
    memcpy(&pbuf[2], (char *)L"TT_UniB: 多字元測試", 15*2);//copy mutil byte.
    A_Prn_Text_TrueType_UniB(20, 150, 30, "Times New Roman", 1, 400, 0, 0, 0, "AD",
      pbuf, 0, 1);//Byte Order Mark.
  VB: VBA:
    Dim buff1(128) As Byte
    Dim buff2() As Byte
    Dim i As Integer
    Call A_Prn_Text_TrueType(20, 60, 30, "Arial", 1, 400, 0, 0, 0, "AA", _
      "TrueType Font", 1) 'save in ram.
    Call A_Prn_Text_TrueType_W(20, 90, 20, 20, "Times New Roman", 1, 400, 0, 0, 0, _
      "AB", "TT_W: 多字元測試", 1)
    buff2 = StrConv("TT_Uni: 多字元測試", vbNarrow) 
    'Converts UNICODE(wide characters) to single-byte characters.
    For i = LBound(buff2) To UBound(buff2)
        buff1(i) = buff2(i)
    Next i
    buff1(26) = 0 'null.
    buff1(27) = 0
    Call A_Prn_Text_TrueType_Uni(20, 120, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AC", buff1(0), 1, 1) 'UTF-16
    buff1(0) = 255 'UTF-16.
    buff1(1) = 254
    buff2 = StrConv("TT_UniB: 多字元測試", vbNarrow) 
    'Converts UNICODE(wide characters) to single-byte characters.
    For i = LBound(buff2) To UBound(buff2)
        buff1(i + 2) = buff2(i)
    Next i
    buff1(30) = 0 'null.
    buff1(31) = 0
    Call A_Prn_Text_TrueType_UniB(20, 150, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AD", buff1(0), 0, 1) 'Byte Order Mark.
  VB.net:
    Dim pbuf(128) As Byte
    Dim encUnicode = System.Text.Encoding.Unicode
    Call A_Prn_Text_TrueType(20, 60, 30, "Arial", 1, 400, 0, 0, 0, "AA", _
      "TrueType Font", 1) 'save in ram.
    Call A_Prn_Text_TrueType_W(20, 90, 20, 20, "Times New Roman", 1, 400, 0, 0, 0, _
      "AB", "TT_W: 多字元測試", 1)
    Call A_Prn_Text_TrueType_Uni(20, 120, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AC", encUnicode.GetBytes("TT_Uni: 多字元測試"), 1, 1) 'UTF-16
    pbuf(0) = 255 'UTF-16.
    pbuf(1) = 254
    encUnicode.GetBytes("TT_UniB: 多字元測試", 0, 14, pbuf, 2) 'copy mutil byte.
    pbuf(30) = 0 'null.
    pbuf(31) = 0
    Call A_Prn_Text_TrueType_UniB(20, 150, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AD", pbuf, 0, 1) 'Byte Order Mark.

說明：  這個 A_Prn_Text_TrueType() 函數可以印出一行 True Type Font 文字。

*******************************************************************************
A_Set_Backfeed()
===============================================================================
功能：  標籤回收停止位置。

語法：
  VC:
    int A_Set_Backfeed(int back);
  VB: VBA:
    Declare Function A_Set_Backfeed(ByVal back As Long) As Long
  VB.net:
    Declare Function A_Set_Backfeed(ByVal back As Integer) As Integer

參數：
    back;
      停止位置，範圍：220～999。印表機內定220。
      注意：1 = 0.01 英吋.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Backfeed(320);
  VB: VBA: VB.net:
    Call A_Set_Backfeed(320)

說明：  這個 A_Set_Backfeed 函數可以使列印完後，吐一小段標籤紙，好讓使用者觀察
    印出成果及容易撕裂標籤。然後，它會在印下一張時，退回到適當點，再印下一
    張，當一次印數張時，只有在第一張才會往後回縮。

*******************************************************************************
A_Set_BMPSave()
===============================================================================
功能：  儲存影像圖檔。

語法：
  VC:
    int A_Set_BMPSave(int nSave, char *pstrBMPFName);
  VB: VBA:
    Declare Function A_Set_BMPSave(ByVal nSave As Long, _
      ByVal pstrBMPFName As String) As Long
  VB.net:
    Declare Function A_Set_BMPSave(ByVal nSave As Integer, _
      ByVal pstrBMPFName As String) As Integer

參數：
    nSave;
      1 -> 儲存圖檔, 0 -> 不儲存圖檔
    pstrBMPFName;
      儲存圖檔的名稱.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_BMPSave(1, "C:\\TempBMP.bmp");
  VB: VBA: VB.net:
    Call A_Set_BMPSave(1, "C:\\TempBMP.bmp")

說明：  這個 A_Set_BMPSave 函數，可以決定是否儲存影像圖檔。

*******************************************************************************
A_Set_Cutting()
===============================================================================
功能：  設定指定印出幾張後切刀切一次。

語法：
  VC:
    int A_Set_Cutting(int cutting);
  VB: VBA:
    Declare Function A_Set_Cutting(ByVal cutting As Long) As Long
  VB.net:
    Declare Function A_Set_Cutting(ByVal cutting As Integer) As Integer

參數：
    cutting;
      指定印出幾張後切刀切一次，範圍：0～9999。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Cutting(12);
  VB: VBA: VB.net:
    Call A_Set_Cutting(12)

說明：  這個 A_Set_Cutting 函數只有當切刀載入(啟動切刀)時，才會動作。指定切刀在印出幾張後
    切一次印出媒體。

*******************************************************************************
A_Set_Darkness()
===============================================================================
功能：  設定熱感頭列印熱度。

語法：
  VC:
    int A_Set_Darkness(int heat);
  VB: VBA:
    Declare Function A_Set_Darkness(ByVal darkness As Long) As Long
  VB.net:
    Declare Function A_Set_Darkness(ByVal darkness As Integer) As Integer

參數：
    heat;
      設定熱感頭列印熱度，範圍：0～20。預設值：10.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Darkness(12);
  VB: VBA: VB.net:
    Call A_Set_Darkness(12)

說明：  這個 A_Set_Darkness 函數控制影像濃淡，想得到更好的印出品質，你應該考慮
    一些因素，像 paper media、ribbon types(wax,semi-resin 和 resin) 和
    image pattern itself。

*******************************************************************************
A_Set_DebugDialog()
===============================================================================
功能：  設定除錯環境。

語法：
  VC:
    int A_Set_DebugDialog(int nEnable);
  VB: VBA:
    Declare Function A_Set_DebugDialog(ByVal nEnable As Long) As Long
  VB:
    Declare Function A_Set_DebugDialog(ByVal nEnable As Integer) As Integer

參數：
    nEnable;
      1 -> 除錯環境致能, 0 -> 除錯環境關閉.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_DebugDialog(1);
  VB: VBA: VB.net:
    Call A_Set_DebugDialog(1)

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

*******************************************************************************
A_Set_Feed()
===============================================================================
功能：  設定標籤紙送出的速度。

語法：
  VC:
    int A_Set_Feed(char rate);
  VB: VBA:
    Declare Function A_Set_Feed(ByVal rate As Byte) As Long
  VB.net:
    Declare Function A_Set_Feed(ByVal rate As Byte) As Integer

參數：
    rate;
      定標籤紙送出的速度，如下表：(A～K)
      +---+-------+---+-------+---+-------+---+-------+---+-------+---+-------+
      | A |1.0 ips| B |1.5 ips| C |2.0 ips| D |2.5 ips| E |3.0 ips| F |3.5 ips|
      +---+-------+---+-------+---+-------+---+-------+---+-------+---+-------+
      | G |4.0 ips| H |4.5 ips| I |5.0 ips| J |5.5 ips| K |6.0 ips|   |       |
      +---+-------+---+-------+---+-------+---+-------+---+-------+---+-------+
      +----------+-----------+
      |  Printer |Speed Range|
      +----------+-----------+
      |OS-214/204|    A~E    |
      +----------+-----------+
      |  OS-314  |    A~C    |
      +----------+-----------+
      |  X-1000  |    A~G    |
      +----------+-----------+
      |  X-2000  |    A~I    |
      +----------+-----------+
      |  X-3000  |    A~K    |
      +----------+-----------+

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Feed('E');
  VB: VBA: VB.net:
    Call A_Set_Feed(Asc("E"))

說明：  這個 A_Set_Feed 函數設定標籤紙送出的速度。每次當你按下 FEED 按鍵或送此
    函數時，印表機馬達將會依此設定值的速度運轉。

*******************************************************************************
A_Set_Form()
===============================================================================
功能：  儲存並列印 FORM (表格)。

語法：
  VC:
    int A_Set_Form(LPCTSTR formfile, LPCTSTR form_name, int mem_mode);
  VB: VBA:
    Declare Function A_Set_Form(ByVal formfile As String, ByVal form_name As String, _
      ByVal mem_mode As Long) As Long
  VB.net:
    Declare Function A_Set_Form(ByVal formfile As String, ByVal form_name As String, _
      ByVal mem_mode As Integer) As Integer

參數：
    formfile;
      表格檔案路徑。
    form_name;
      表格名稱，用來存在印表機內，Form 的標示名稱，當 Print_Form() 所輸入的表格名稱。
    mem_mode;
      記憶體模式，1 => RAM, 2 => Flash Memory
      注意:Flash有使用壽命,常使用會造成壽命減短,如非必要請儘量存到RAM.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Form("demo.prn", "demo", 1);
  VB: VBA: VB.net:
    Call A_Set_Form("demo.prn", "demo", 1)

說明：  這個 A_Set_Form 函數儲存並列印 FORM (表格)。在使用這個函數時，須先在
    A_Print_Form函數之前。使用此函數時，就必須執行 Print_Form()。

*******************************************************************************
A_Set_Margin()
===============================================================================
功能：  設定開始列印位置和左邊空白空間。

語法：
  VC:
    int A_Set_Margin(int position, int margin);
  VB: VBA:
    Declare Function A_Set_Margin(ByVal position As Long, _
      ByVal margin As Long) As Long
  VB.net:
    Declare Function A_Set_Margin(ByVal position As Integer, _
      ByVal margin As Integer) As Integer

參數：
    position;
      設定開始位置，範圍：0～9999。
      格式: 將與 220 相加。(100 = 1英吋)
    margin;
      設定左邊空白空間，範圍：0～9999。(100 = 1英吋)

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Margin(100, 100);
  VB: VBA: VB.net:
    Call A_Set_Margin(100, 100)

說明：  這個 A_Set_Margin 函數設定開始列印位置和左邊空白空間。而 position 參數
    ，在印表機預設值是 220，當輸入數值時函數將自動與 220 相加為結果，送入印
    表機。如果你使用此函數後，整個版面圖文會水平位移或左右移動印出。

*******************************************************************************
A_Set_Prncomport()
===============================================================================
功能：  設定印表機序列埠。

語法：
  VC:
    int A_Set_Prncomport(int baud, int parity, int data, int stop);
  VB: VBA:
    Declare Function A_Set_Prncomport(ByVal baud As Long, ByVal parity As Long, _
      ByVal data As Long, ByVal sstop As Long) As Long
  VB.net:
    Declare Function A_Set_Prncomport(ByVal baud As Integer, ByVal parity As Integer, _
      ByVal data As Integer, ByVal sstop As Integer) As Integer

參數：
    baud;
      鮑爾率，如下表：
      0 -> 9600, 1 -> 600
      2 -> 2400, 3 -> 19200
      4 -> 4800, 5 -> 38400
      6 -> 1200, 7 -> 9600
      8 -> 57600, 9 -> 115200
    parity;
      Parity，如下表：
      0 -> none parity
      1 -> even parity
      2 -> odd  parity
    data;
      Data bit number:
      7 -> 7-bit data
      8 -> 8-bit data
    stop;
      Stop bit number:
      1 -> 1 stop bit
      2 -> 2 stop bits

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Prncomport(0, 0, 8, 1);
  VB: VBA: VB.net:
    Call A_Set_Prncomport(0, 0, 8, 1)

說明：  這個 A_Set_Prncomport 函數會設定印表機序列埠設定值，來改變印表機相同於
    PC 序列埠設定值，如果不同則無法與 PC 連接。此函數必須在函數 Print_Out
    之前執行，必須單獨執行。

*******************************************************************************
A_Set_Prncomport_PC()
===============================================================================
功能：  設定 PC 序列埠。

語法：
  VC:
    int A_Set_Prncomport_PC(int nBaudRate, int nByteSize, int nParity, int nStopBits,
      int nDsr, int nCts, int nXonXoff);
  VB: VBA:
    Declare Function A_Set_Prncomport_PC(ByVal nBaudRate As Long, _
      ByVal nByteSize As Long, ByVal nParity As Long, ByVal nStopBits As Long, _
      ByVal nDsr As Long, ByVal nCts As Long, ByVal nXonXoff As Long) As Long
  VB.net:
    Declare Function A_Set_Prncomport_PC(ByVal nBaudRate As Integer, _
      ByVal nByteSize As Integer, ByVal nParity As Integer, ByVal nStopBits As Integer, _
      ByVal nDsr As Integer, ByVal nCts As Integer, ByVal nXonXoff As Integer) As Integer

參數：
    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
    nByteSize;
      Data bit number:
      0 -> 8-bit data
      7 -> 7-bit data
      8 -> 8-bit data
    nParity;
      Parity，如下表：
      0 -> none parity
      1 -> even parity
      2 -> odd  parity
    nStopBits;
      Stop bit number:
      0 -> 1 stop bit
      1 -> 1 stop bit
      2 -> 2 stop bits
    nDsr;
      Setup hardware flow control
      1 -> DTR CONTROL HANDSHAKE;
      0 -> DTR CONTROL ENABLE;
    nCts;
      Setup hardware flow control
      1 -> RTS CONTROL HANDSHAKE;
      0 -> RTS CONTROL ENABLE;
    nXonXoff;
      Setup software flow control
      0 -> Enable;
      1 -> Disable;

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Prncomport_PC(0, 0, 0, 0, 0, 0, 0);
  VB: VBA: VB.net:
    Call A_Set_Prncomport_PC(0, 0, 0, 0, 0, 0, 0)

說明：  這個 A_Set_Prncomport_PC 函數會設定 PC 序列埠設定值，來改變 PC 相同於印
    表機序列埠設定值，如果不同則無法與印表機連接。此函數必須在函數
    A_Print_Out 之前執行。

*******************************************************************************
A_Set_Sensor_Mode()
===============================================================================
功能：  設定 SENSOR 模式或連續紙模式。

語法：
  VC:
    int A_Set_Sensor_Mode(char type, int continuous);
  VB: VBA:
    Declare Function A_Set_Sensor_Mode(ByVal ttype As Byte, _
      ByVal continuous As Long) As Long
  VB.net:
    Declare Function A_Set_Sensor_Mode(ByVal ttype As Byte, _
      ByVal continuous As Integer) As Integer

參數：
    type;
    continuous;
      +----+-----------+---------------------------------+
      |TYPE|continuous |REMARK                           |
      +----+-----------+---------------------------------+
      | e  |  0        |Select edge sensor (Default)     |
      +----+-----------+---------------------------------+
      | r  |  0        |Select reflective sensor for gap |
      +----+-----------+---------------------------------+
      | c  |0~9999 inch|Set continuous paper type        |
      +----+-----------+---------------------------------+
      (100 = 1 英吋)

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Sensor_Mode('c',300);
  VB: VBA: VB.net:
    Call A_Set_Sensor_Mode(Asc("c"),300)

說明：  這個 A_Set_Sensor_Mode 函數設定為 "e" 時，則 sensor 以穿透標籤媒體方式，來抓取 gap。
    設定為 "r" 時，則 sensor 以反射標籤媒體方式，來抓取 gap。
    而當是連續模式'c'時，印表機會忽略 gap 及 mark，使 paper sensor 不動作。

*******************************************************************************
A_Set_Speed()
===============================================================================
功能：  設定列印速度。

語法：
  VC:
    int A_Set_Speed(char speed);
  VB: VBA:
    Declare Function A_Set_Speed(ByVal speed As Byte) As Long
  VB.net:
    Declare Function A_Set_Speed(ByVal speed As Byte) As Integer

參數：
    speed;
      設定列印速度，如下表：(A～K)
      +---+-------+---+-------+---+-------+---+-------+---+-------+---+-------+
      | A |1.0 ips| B |1.5 ips| C |2.0 ips| D |2.5 ips| E |3.0 ips| F |3.5 ips|
      +---+-------+---+-------+---+-------+---+-------+---+-------+---+-------+
      | G |4.0 ips| H |4.5 ips| I |5.0 ips| J |5.5 ips| K |6.0 ips| L |7.0 ips|
      +---+-------+---+-------+---+-------+---+-------+---+-------+---+-------+
      +----------+-----------+
      |  Printer |Speed Range|
      +----------+-----------+
      |OS-214/204|    A~E    |
      +----------+-----------+
      |  OS-314  |    A~C    |
      +----------+-----------+
      |  X-1000  |    A~G    |
      +----------+-----------+
      |  X-2000  |    A~I    |
      +----------+-----------+
      |  X-3000  |    A~L    |
      +----------+-----------+

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Speed('E');
  VB: VBA: VB.net:
    Call A_Set_Speed(Asc("E"))

說明：  這個 A_Set_Speed 函數為控制列印速度。

*******************************************************************************
A_Set_Syssetting()
===============================================================================
功能：  設定轉印模式、啟動 Cutter 或 Peel、設定標籤最長的長度、改變 slash zero
    為 normal zero、設定每印一張暫停一次。

語法：
  VC:
    int A_Set_Syssetting(int transfer, int cut_peel, int length, int zero, int pause);
  VB: VBA:
    Declare Function A_Set_Syssetting(ByVal transfer As Long, ByVal cut_peel As Long, _
      ByVal Length As Long, ByVal zero As Long, ByVal pause As Long) As Long
  VB.net:
    Declare Function A_Set_Syssetting(ByVal transfer As Integer, _
      ByVal cut_peel As Integer, ByVal Length As Integer, ByVal zero As Integer, _
      ByVal pause As Integer) As Integer

參數：
    transfer;
      設定轉印模式，如下表：
      +----------+------------------+
      | transfer | 轉印模式         |
      +----------+------------------+
      |    0     | 不動作           |
      +----------+------------------+
      |    1     | 熱感             |
      +----------+------------------+
      |    2     | 熱轉             |
      +----------+------------------+      
    cut_peel;
      啟動 Cutter 或 Peel，如下表：
      +----------+-----------------------------+
      | cut_peel | 週邊模式                    |
      +----------+-----------------------------+
      |    9     | 不動作                      |
      +----------+-----------------------------+
      |    0     | 沒有 Cutter 和 Peel         |
      +----------+-----------------------------+
      |    1     | 啟動 Cutter                 |
      +----------+-----------------------------+
      |    4     | 啟動 Peel                   |
      +----------+-----------------------------+            
    length;
      設定標籤最長的長度，範圍：1～1200。
      當你設為 0 時，則不動作。(100 = 1 英吋)
    zero;
      改變 slash zero 為 normal zero。
      '0'則不動作。
      '1'改變為 normal zero。
    pause;
      設定每印一張暫停一次，如下表：
      +-------+-------------+
      | pause | 功能        |
      +-------+-------------+
      |   0   | 不動作      |
      +-------+-------------+
      |   1   | 設定暫停    |
      +-------+-------------+
      |   2   | 取消暫停    |
      +-------+-------------+            

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Syssetting(2, 0, 1200, 1, 2);
  VB: VBA: VB.net:
    Call A_Set_Syssetting(2, 0, 1200, 1, 2)

說明：  這個 A_Set_Syssetting 函數為重要配置。

*******************************************************************************
A_Set_Unit()
===============================================================================
功能：  設定度量單位為英吋或公厘。

語法：
  VC:
    int A_Set_Unit(char unit);
  VB: VBA:
    Declare Function A_Set_Unit(ByVal unit As Byte) As Long
  VB.net:
    Declare Function A_Set_Unit(ByVal unit As Byte) As Integer

參數：
    unit;
      度量單位，如下表：
      +------+---------------------------+
      | unit | 度量                      |
      +------+---------------------------+
      |  m   | 公厘                      |
      +------+---------------------------+
      |  n   | 英吋                      |
      +------+---------------------------+

傳回值：  0 -> OK.
      Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Unit('n');
  VB: VBA: VB.net:
    Call A_Set_Unit(Asc("n"))

說明：  這個 A_Set_Unit 函數設定度量單位為英吋或公厘。

*******************************************************************************
A_Set_Gap()
===============================================================================
功能：  設定 Gap 的長度。

語法：
  VC:
    int A_Set_Gap(int gap);
  VB: VBA:
    Declare Function A_Set_Gap(ByVal gap As Long) As Long
  VB.net:
    Declare Function A_Set_Gap(ByVal gap As Integer) As Integer

參數：
    gap;
      範圍: 0 ～ 36 mm。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Gap(0);
  VB: VBA: VB.net:
    Call A_Set_Gap(0)

說明：  這個 A_Set_Unit 函數可設定 Gap 的寬度。

*******************************************************************************
A_Set_Logic()
===============================================================================
功能：  設定反白功能。

語法：
  VC:
    int A_Set_Logic(int Logic);
  VB: VBA:
    Declare Function A_Set_Logic(ByVal Logic As Long) As Long
  VB.net:
    Declare Function A_Set_Logic(ByVal Logic As Integer) As Integer

參數：
    logic;
      0:印表機預設值。
      1:重疊部份反白。
      2:重疊部份不反白。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_Logic(1);
  VB: VBA: VB.net:
    Call A_Set_Logic(1)

說明：  這個 A_Set_Logic 函數可設定反白功能。

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

語法：
  VC:
    int A_Set_ProcessDlg(int nShow);
  VB: VBA:
    Declare Function A_Set_ProcessDlg(ByVal nShow As Long) As Long
  VB.net:
    Declare Function A_Set_ProcessDlg(ByVal nShow As Integer) As Integer

參數：
    nShow;
      0 -> 關閉。
      1 -> 開啟。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_ProcessDlg(1);
  VB: VBA: VB.net:
    Call A_Set_ProcessDlg(1)

說明：  這個 A_Set_ProcessDlg 函數可開關進度對話框。

*******************************************************************************
A_Set_ErrorDlg()
===============================================================================
功能：  開啟或關閉重試詢問視窗。

語法：
  VC:
    int A_Set_ErrorDlg(int nShow);
  VB: VBA:
    Declare Function A_Set_ErrorDlg(ByVal nShow As Long) As Long
  VB.net:
    Declare Function A_Set_ErrorDlg(ByVal nShow As Integer) As Integer

參數：
    nShow;
      0 -> 關閉。
      1 -> 開啟。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_ErrorDlg(1);
  VB: VBA: VB.net:
    Call A_Set_ErrorDlg(1)

說明：  這個 A_Set_ErrorDlg 函數可開關重試詢問視窗。

*******************************************************************************
A_Set_LabelVer()
===============================================================================
功能：  設定紙張寬度。(For R400)

語法：
  VC:
    int A_Set_LabelVer(int centiInch);
  VB: VBA:
    Declare Function A_Set_LabelVer(ByVal centiInch As Long) As Long
  VB.net:
    Declare Function A_Set_LabelVer(ByVal centiInch As Integer) As Integer

參數：
    centiInch;
      紙張寬度。單位 : 0.01 英吋。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_LabelVer(400);
  VB: VBA: VB.net:
    Call A_Set_LableVer(400)

說明：  這個 A_Set_LabelVer 函數可設定 R400 紙張寬度。

*******************************************************************************
A_Clear_MemoryEx()
===============================================================================
功能：  清除 Printer 內 RAM 或 Flash Memory 的資料。

語法：
  VC:
    void A_Clear_MemoryEx(int nMode);
  VB: VBA:
    Declare Sub A_Clear_MemoryEx(ByVal nMode As Long)
  VB.net:
    Declare Sub A_Clear_MemoryEx(ByVal nMode As Integer)

參數：
    nMode;
      0 --> Printer預設值。
      1 --> RAM。
      2 --> Flash Memory。

範例：
  VC:
    A_Clear_MemoryEx(1);
  VB: VBA: VB.net:
    Call A_Clear_MemoryEx(1)

說明：  這個 A_Clear_MemoryEx 函數可指定清除 Printer 內 RAM 或 Flash Memory 的圖形、軟
    體字形。因為圖形、字形會一直累積在 memory 造成 overflow，正常時函數須在
    Print_Out() 之前送出。而當 memory 充滿指令，Printer 就會刪除先前載入的
    圖形和字形，為避免發生不當的刪除，須先在 A_Print_Out() 之前送出。

*******************************************************************************
A_Set_Mirror()
===============================================================================
功能：  開啟或關閉鏡射模式。

語法：
  VC:
    void A_Set_Mirror(void);
  VB: VBA: VB.net:
    Declare Sub A_Set_Mirror()

範例：
  VC:
    A_Set_Mirror();
  VB: VBA: VB.net:
    Call A_Set_Mirror()

說明：  這個 A_Set_Mirror函數會開啟鏡射模式，使得在其之後呼叫的列印文字、條碼、圖案等相關函數可
    產生反轉列印的效果，若在相同程式中再次呼叫A_Set_Mirror函數則可關閉鏡射功能，其
    後所呼叫的列印函數皆會改回一般列印模式，此函數在程式可依需求重複呼叫。
                      
*******************************************************************************
A_Bar2d_RSS()
===============================================================================
功能：  印出一個 RSS Barcode。

語法：
  VC:
    int A_Bar2d_RSS(int x, int y, int ori, int ratio, int height, char rtype,
      int mult, int seg, LPCTSTR data1, LPCTSTR data2);
  VB: VBA:
    Declare Function A_Bar2d_RSS(ByVal x As Long, ByVal y As Long, ByVal ori As Long, _
      ByVal ratio As Long, ByVal height As Long, ByVal rtype As Byte, _
      ByVal mult As Long, ByVal seg As Long, ByVal data1 As String, _
      ByVal data2 As String) As Long
  VB.net:
    Declare Function A_Bar2d_RSS(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal ratio As Integer, ByVal height As Integer, _
      ByVal rtype As Byte, ByVal mult As Integer, ByVal seg As Integer, _
      ByVal data1 As String, ByVal data2 As String) As Integer

參數：
    x;
      X 座標。(100 = 1 英吋)
    y;
      Y 座標。(100 = 1 英吋)
    ori;
      列印方向。1:0°、2:90°、3:180°、4:270°
    ratio;
      Narrow bar與Width bar的放大倍率，範圍1~9(預設值:2)。
    height;
      條碼高度。
      標準條碼最小高度限制:
      RSS-14                      -> 33 pixels
      RSS Limited                 -> 10 pixels
      RSS Stacked                 -> 13 pixels
      RSS Truncated               -> 13 pixels
      RSS Stacked Omnidirectional -> 69 pixels
      RSS Expanded                -> 34 pixels
    rtype;
      條碼型別。
      R -> RSS-14 
      L -> RSS Limited
      S -> RSS Stacked
      T -> RSS Truncated
      D -> RSS Stacked Omnidirectional
      E -> RSS Expanded
    mult;
      圖素放大倍率，範圍1~9(預設值:1)。
    seg;
      每列條碼可包含的最大資料區塊數量，只在使用RSS Expanded條碼時有效，
      在其它類型的RSS條碼中則為無效參數，範圍為2~22，預設值為22，且此值必需為偶數。
    data1;
      數字型別的資料。
    data2;
      二維條碼的資料。

    註:
      1.'height' = 0 => 實際條碼高度 = 'default' * 'ratio' * 'mult'
        'height' = 其它數值 => 實際條碼高度 = 'height'
      2. 條碼高度的單位由<STX>n與<STX>m指令決定.

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Bar2d_RSS(100, 100, 1, 2, 33, 'R', 1, 4, "1234567890", "RSS code");
  VB: VBA: VB.net:
    Call A_Bar2d_RSS(100, 100, 1, 2, 33, Asc("R"), 1, 4, "1234567890", "RSS code")

說明：  這個 A_Bar2d_RSS 函數可以列印出一個 RSS Barcode。

*******************************************************************************
A_Bar2d_QR_M()
A_Bar2d_QR_A()
===============================================================================
功能：  列印 QR 條碼。

語法：
  VC:
    int A_Bar2d_QR_M(int x, int y, int ori, char mult, int value, int model,
      char error, int mask, char dinput, char mode, int numeric, LPCTSTR data);
    int A_Bar2d_QR_A(int x, int y, int ori, char mult, int value, char mode,
      int numeric, LPCTSTR data);
  VB: VBA:
    Declare Function A_Bar2d_QR_M(ByVal x As Long, ByVal y As Long, _
      ByVal ori As Long, ByVal mult As Byte, ByVal value As Long, _
      ByVal model As Long, ByVal err As Byte, ByVal mask As Long, _
      ByVal dinput As Byte, ByVal mode As Byte, ByVal numeric As Long, _
      ByVal data As String) As Long
    Declare Function A_Bar2d_QR_A(ByVal x As Long, ByVal y As Long, _
      ByVal ori As Long, ByVal mult As Byte, ByVal value As Long, _
      ByVal mode As Byte, ByVal numeric As Long, ByVal data As String) As Long
  VB.net:
    Declare Function A_Bar2d_QR_M(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal mult As Byte, ByVal value As Integer, _
      ByVal model As Integer, ByVal err As Byte, ByVal mask As Integer, _
      ByVal dinput As Byte, ByVal mode As Byte, ByVal numeric As Integer, _
      ByVal data As String) As Integer
    Declare Function A_Bar2d_QR_A(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal mult As Byte, ByVal value As Integer, _
      ByVal mode As Byte, ByVal numeric As Integer, ByVal data As String) As Integer

參數：
    x;
      X 座標。
    y;
      Y 座標。
    ori;
      列印方向。 1:0°、2:90°、3:180°、4:270°
    mult;
      水平與垂直放大倍率，範圍: 1~9, A~Z, a~z。
    value;
      範圍: 000~999 
    mode;
      跳號功能，如下表：
      +----+-------------------------------------+
      |mode|           功能說明                  |
      +----+-------------------------------------+
      | A  |對數字自動增加跳號.                  |
      +----+-------------------------------------+
      | B  |對字母自動增加跳號.                  |
      +----+-------------------------------------+
      | C  |對數字自動減少跳號.                  |
      +----+-------------------------------------+
      | D  |對字母自動減少跳號.                  |
      +----+-------------------------------------+
      | N  |無須任何功能.                        |
      +----+-------------------------------------+
    numeric;
      自動增加或減少跳號量，範圍：0~99。
    data;
      資料字串。
      手動格式參數:(若設定不符範圍，則印表機會採用預設值列印)
    model;
      QR條碼模式，範圍:1,2 (預設值: 2)。
    error;
      錯誤校正等級。(需dinput設定正確才有效)
      H = Ultra reliability level (30%)
      Q = High reliability level (25%)
      M = Standard reliability level (15%)
      L = High density level (7%)
      (預設值: M)
    mask;
      遮罩序數。(需error與dinput設定正確才有效)
      0~7 = Mask 0 ~ Mask 7
      8 = No mask
      (預設值: 自動選擇)
    dinput;
      資料輸入模式。(需error設定正確才有效)
      A = 自動設定, ASCII
      a = 自動, hex-ASCII
      M = 手動設定, ASCII
      m = 手動, hex-ASCII   
      (預設值: A)                    
      注意:在手動模式下，資料字串的起始字元必須是下列字元之一
      N = 數字資料 
      A = 字母與數字資料
      Bxxxx = 8位元組模式，"xxxx" 代表字元數量。
              (簡體中文或繁體中文一個字代表兩個字元)
      K=漢字資料

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Bar2d_QR_M(100, 100, 4, '6', 10, 2, 'M', 1, 'A', 'A', 4, "N123456");
    A_Bar2d_QR_A(100, 100, 4, '6', 10, 'A', 4, "123456");
  VB: VBA: VB.net:
    Call A_Bar2d_QR_M(100, 100, 4, Asc("6"), 10, 2, Asc("M"), 1, Asc("A"), _
      Asc("A"), 4, "N123456")
    Call A_Bar2d_QR_A(100, 100, 4, Asc("6"), 10, Asc("A"), 4, "123456")

說明：  A_Bar2d_QR_M與A_Bar2d_QR_A函數可以列印QR條碼。

*******************************************************************************
A_Set_EncryptionKey()
===============================================================================
功能: 設定加密鑰匙的值。

語法:
  VC:
    int A_Set_EncryptionKey(char encryptionKey[16]);
  VB: VBA:
    Declare Function A_Set_EncryptionKey(ByVal encryptionKey As String) As Long
  VB.net:
    Declare Function A_Set_EncryptionKey(ByVal encryptionKey As String) As Integer

參數:
    encryptionKey;
      加密鑰匙的值, 需16個字元, 其字元的範圍為0x21至0x7E。

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

範例:
  VC:
    A_Set_EncryptionKey("key-123456789000");
  VB: VBA: VB.net:
    Call A_Set_EncryptionKey("key-123456789000")

說明:  此函式用來設定加密鑰匙的值, 且會立即傳送資料, 並將其值儲存至印表機中。

*******************************************************************************
A_Check_EncryptionKey()
===============================================================================
功能：  確認加密鑰匙的正確性。

語法：
  VC:
    int A_Check_EncryptionKey(char decodeKey[8], char encryptionKey[16], DWORD dwTimeoutms);
  VB: VBA:
    Declare Function A_Check_EncryptionKey(ByVal decodeKey As String, ByVal encryptionKey As String, _
      ByVal dwTimeoutms As Long) As Long
  VB.net:
    Declare Function A_Check_EncryptionKey(ByVal decodeKey As String, ByVal encryptionKey As String, _
      ByVal dwTimeoutms As ULong) As Integer

參數：
    decodeKey;
      解碼鑰匙的值, 需8個字元, 其字元的範圍為0x21至0x7E。
    encryptionKey;
      加密鑰匙的值, 需16個字元, 其字元的範圍為0x21至0x7E。
    dwTimeoutms;
      計數時間, 也就是讀取資料最長的時間, 單位為ms。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    int ret;
    ret = A_Check_EncryptionKey("test-par", "key-123456789000", 1000);//1 second.
  VB: VBA:
    Dim ret As Long
    ret = A_Check_EncryptionKey("test-par", "key-123456789000", 1000)   '1 second.
  VB.net:
    Dim ret As Integer
    ret = A_Check_EncryptionKey("test-par", "key-123456789000", 1000)   '1 second.

說明：  此函式用來確認加密鑰匙的正確性。將 decodeKey 的值傳至印表機後, 
    和印表機中的加密鑰匙做運算後回傳運算結果, 然後和 decodeKey 及 encryptionKey 
    的值運算後的結果做比對, 看看是否相同。

*******************************************************************************
A_Set_CommTimeout()
===============================================================================
功能：設定通信的時間.

語法：
  VC:
    void A_Set_CommTimeout(int ReadTotalTimeoutConstant, int WriteTotalTimeoutConstant);
  VB: VBA:
    Declare Sub A_Set_CommTimeout(ByVal ReadTotalTimeoutConstant As Long, _
      ByVal WriteTotalTimeoutConstant As Long)
  VB.net:
    Declare Sub A_Set_CommTimeout(ByVal ReadTotalTimeoutConstant As Integer, _
      ByVal WriteTotalTimeoutConstant As Integer)

參數：
    ReadTotalTimeoutConstant;
      讀取的逾時時間; 單位 : 1 ms. -1 是無窮大.
    WriteTotalTimeoutConstant;
      寫入的逾時時間; 單位 : 1 ms. -1 是無窮大.

範例：
  VC:
    A_Set_CommTimeout(0, -1);
    A_CreatePrn(11, NULL); //USB
  VB: VBA: VB.net:
    Call A_Set_CommTimeout(0, -1)
    Call A_CreatePrn(11, null) 'USB

說明：  此函式用來設定讀取/寫入的逾時時間. 
    如果你需要使用此函式, 此函式需要在 A_CreatePrn() 函式前執行.

*******************************************************************************
A_Get_CommTimeout()
===============================================================================
功能：取得通信的時間.

語法：
  VC:
    void A_Get_CommTimeout(int *ReadTotalTimeoutConstant, int *WriteTotalTimeoutConstant);
  VB: VBA:
    Declare Sub A_Get_CommTimeout(ByRef ReadTotalTimeoutConstant As Long, _
      ByRef WriteTotalTimeoutConstant As Long)
  VB.net:
    Declare Sub A_Get_CommTimeout(ByRef ReadTotalTimeoutConstant As Integer, _
      ByRef WriteTotalTimeoutConstant As Integer)

參數：
    ReadTotalTimeoutConstant;
      read timeout; unit : 1 ms. -1 is infinite.
    WriteTotalTimeoutConstant;
      write timeout; unit : 1 ms. -1 is infinite.

範例：
  VC:
    int ReadTotalTimeoutConstant, WriteTotalTimeoutConstant;
    A_Get_CommTimeout(&ReadTotalTimeoutConstant, &WriteTotalTimeoutConstant);
  VB: VBA: VB.net:
    Dim ReadTotalTimeoutConstant, WriteTotalTimeoutConstant As Long
    Call A_Get_CommTimeout(ReadTotalTimeoutConstant, WriteTotalTimeoutConstant)

*******************************************************************************
A_Set_LabelForSmartPrint()
===============================================================================
功能： 設定 Smart Print 中所需的資訊.

語法：
  VC:
    int A_Set_LabelForSmartPrint(int lablength, int gaplength);
  VB: VBA:
    Declare Function A_Set_LabelForSmartPrint(ByVal lablength As Long, _
      ByVal gaplength As Long) As Long
  VB.net:
    Declare Function A_Set_LabelForSmartPrint(ByVal lablength As Integer, _
      ByVal gaplength As Integer) As Integer
      
參數：
    lablength;
      標籤長度。單位 : 0.1 公厘。
    gaplength;
      GAP 長度。單位 : 0.1 公厘。

傳回值：
    0 -> OK.
    Reference AW-Error.txt file.

範例：
  VC:
    A_Set_LabelForSmartPrint(762, 30);
  VB: VBA: VB.net:
    Call A_Set_LabelForSmartPrint(762, 30)

說明：  這個 A_Set_LabelForSmartPrint 函數用來設定 Smart Print 所需的標籤長度及 GAP 長度這兩個資訊。
