/******************************************************************************
  Module: ZWIN-CAPI.TXT
          All commands for PPLZ in Dynamic Link Library for Windows
  Notices: Copyright (c) 2001-2013 ARGOX
******************************************************************************/
  目錄
===============================================================================
(01)Z_Bar2d_Maxi()              => 印出一個 Maxi Code 2D Barcode。
(02)Z_Bar2d_PDF417()            => 印出一個 PDF417。
(03)Z_ClosePrn()                => 關閉 Printer 工作。
(04)Z_CreatePrn()               => 開啟 Printer 工作。
(05)Z_Set_FlashMemory()         => 設定 FORM 儲存在 RAM 或 Flash Memory。
(06)Z_Set_Format_New()          => 設定 FORM 名稱。
(07)Z_Del_Format()              => 刪除 Form (表格)。
(08)Z_Del_Graphic()             => 刪除儲存在印表機 RAM 或 Flash Memory 內的圖形。
(09)Z_Draw_Box()                => 畫一個框。
(10)Z_Draw_Line()               => 畫一條線。
(11)Z_Get_DLL_Version()         => 取得或秀出此函數庫版本資訊。
(12)Z_Get_DLL_VersionA()        => 取得或秀出此函數庫版本資訊。
(13)Z_Get_Graphic_ColorBMP()    => 轉換 BMP 圖檔彩色變灰階，並將圖形儲存在印表機內的 
                                   RAM 或 Flash Memory。
(14)Z_Initial_Setting()         => 前置處理。
(15)Z_Load_Graphic()            => 列印一個圖形。
(16)Z_Open_ChineseFont()        => 開啟使用中文點矩陣字型檔案 (16*15 和 24*24)。
(17)Z_Print_Form()              => 列印一個 FORM(表格)，並輸入 FORM 的名稱，並設定
                                   寬及高的比例和跳號次數與列印份數。
(18)Z_Print_Out()               => 輸出所有資料並設定寬及高的比例和跳號次數與列印份數。
(19)Z_Prn_Barcode()             => 印出一個條碼。
(20)Z_Prn_Text()                => 印出一行文字。
(21)Z_Prn_Text_Chinese()        => 印出一行文字，使用中文點矩陣字型檔案(16*15 或 24*24)。
(22)Z_Prn_Text_TrueType()       => 印出一行 True Type Font 文字。
(23)Z_Prn_Text_TrueType_W()     => 印出一行 True Type Font 文字，並控制字型的寬及高。
(24)Z_Clear_Memory()            => 清除 Printer 內 RAM Memory 的資料。
(25)Z_Set_Backfeed()            => 標籤回收停止。
(26)Z_Set_Darkness()            => 設定熱感頭列印熱度。
(27)Z_Set_DebugDialog()         => 設定除錯環境。
(28)Z_Set_Label()               => 設定紙張長度。
(29)Z_Set_Mode()                => 啟動 Cutter 或 Peel。
(30)Z_Set_Origin()              => 設定開始列印位置。
(31)Z_Set_Paper()               => 設定為連續紙張。
(32)Z_Set_Prncomport            => 設定印表機序列埠。
(33)Z_Set_Prncomport_PC()       => 設定 PC 序列埠。
(34)Z_Set_Reset()               => 回復工廠設定。
(35)Z_Set_Speed()               => 設定列印速度。
(36)Z_Set_TPH()                 => 設定轉印模式。
(37)Z_Set_Unit()                => 設定度量單位為英吋或公尺或像素。
(38)Z_Set_Gap()                 => 設定 Gap 長度。
(39)Z_Set_ProcessDlg()          => 開啟或關閉進度對話框。
(40)Z_Bar2d_QRCode()            => 2D Barcode QR code 列印。
(41)Z_Set_PrintWidth()          => 設定列印寬度。
(42)Z_Print_OutQuality()        => 設定列印張數。
(43)Z_GetUSBBufferLen()         => 查詢 USB 埠資料長度。
(44)Z_EnumUSB()                 => 取得 USB 埠的資料。
(45)Z_CreateUSBPort()           => 使用 USB 埠進行傳輸。
(46)Z_CreatePort()              => 開啟傳輸埠進行傳輸。
(47)Z_Set_Mirror()              => 開啟或關閉鏡射模式
(48)Z_Bar2d_RSS()               => 列印RSS條碼
(49)Z_GetNetPrinterBufferLen()  => 查詢 Net Printer的資料長度。
(50)Z_EnumNetPrinter()          => 取得 Net Printer的資料。
(51)Z_CreateNetPort()           => 使用 Net 埠進行傳輸。
(52)Z_Prn_Text_TrueType_Uni()   => 印出一行由Unicode編碼文字所轉成的 True Type Font 文字。 
(53)Z_Prn_Text_TrueType_UniB()  => 印出一行由Unicode編碼文字所轉成的 True Type Font 文字。  
(54)Z_GetUSBDeviceInfo()        => 取得 USB 埠的裝置名稱和裝置路徑。
(55)Z_Get_Graphic_ColorBMPEx()  => 轉換 BMP 圖檔彩色變灰階，並將圖形儲存在印表機內的 
                                   RAM 或 Flash Memory。
(56)Z_Get_Graphic_ColorBMP_HBitmap() => 轉換 BMP 圖檔彩色變灰階，並將圖形儲存在印表機內的 
                                        RAM 或 Flash Memory。
(57)Z_WriteData()               => 用來立即將資料傳送出或暫時寫入暫存區中。
(58)Z_ReadData()                => 取得印表機中的資料。
(59)Z_Set_EncryptionKey()       => 設定加密鑰匙的值。
(60)Z_Check_EncryptionKey()     => 確認加密鑰匙的正確性。
(61)Z_Set_ErrorDlg()            => 開啟或關閉重試詢問視窗。
(62)Z_Clear_MemoryEx()          => 清除 Printer 內 RAM 或 Flash Memory 的資料。
(63)Z_Bar2d_DataMatrix()        => 印出一個 Data Matrix code。
(64)Z_Set_CommTimeout()         => 設定通信的時間.
(65)Z_Get_CommTimeout()         => 取得通信的時間.
(66)Z_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 的範例,其他程式語言不一定完全相同。

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

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

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

傳回值：
    Z_GetUSBBufferLen();  傳回 USB Printer 的資料長度.
    Z_EnumUSB();  0 -> OK.
    Reference ZW-Error.txt file.

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

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

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

語法：
  VC:
    int Z_GetUSBDeviceInfo(int nPort, char *pDeviceName, int *pDeviceNameLen, 
      char *pDevicePath, int *pDevicePathLen);
  VB: VBA:
    Declare Function Z_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 Z_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 ZW-Error.txt file.

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

    nlen = Z_GetUSBBufferLen() + 1
    If nlen > 1 Then
      nLen1 = 128
      nLen2 = 128
      buf1 = Space(nLen1)
      buf2 = Space(nLen2)
      Call Z_GetUSBDeviceInfo(1, buf1, nLen1, buf2, nLen2)
      Call Z_CreatePrn(12, buf2) 'or Call Z_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 = Z_GetUSBBufferLen() + 1
    If nlen > 1 Then
      nLen1 = 128
      nLen2 = 128
      ReDim buf1(nLen1)
      ReDim buf2(nLen2)
      Call Z_GetUSBDeviceInfo(1, buf1, nLen1, buf2, nLen2)
      Call Z_CreatePrn(12, encAscII.GetString(buf2, 0, nLen2))
      'or Call Z_CreatePort(6, 0, encAscII.GetString(buf2, 0, nLen2))
    End If

說明：  此函式先呼叫 Z_GetUSBBufferLen() 取得 USB printer的資料長度, 然後再呼叫 
    Z_GetUSBDeviceInfo() 取得 USB printer的相關資料。
    pDevicePath所儲存的資料是USB的裝置路徑, 可用在Z_CreatePrn()及Z_CreatePort()
    來開啟USB裝置。
    
*******************************************************************************
Z_GetNetPrinterBufferLen()
Z_EnumNetPrinter()
===============================================================================
功能： 取得 Net Printer 的裝置名稱及資料長度。

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

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

傳回值：
    Z_GetNetPrinterBufferLen();  傳回 Net Printer 的資料長度.
    Z_EnumNetPrinter();  0 -> OK.
    Reference ZW-Error.txt file.

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

說明：  這兩個函數是一組的函數。先用 Z_GetNetPrinterBufferLen() 取得 Net Printer
    的資料長度, 然後再配記憶體給 Z_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。

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

語法:
  VC:
    int Z_CreatePrn(int selection, LPCTSTR filename);
  VB: VBA:
    Declare Function Z_CreatePrn(ByVal selection As Long, _
      ByVal filename As String) As Long
  VB.net:
    Declare Function Z_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 ZW-Error.txt file.

範例:
  VC:
    Z_CreatePrn(1, NULL); or Z_CreatePrn(0, "C:\\out.prn");
    Z_CreatePrn(10,"\\\\allen\\Label");  //share mode.
  VB: VBA: VB.net:
    Call Z_CreatePrn(1, null) or Call Z_CreatePrn(0, "C:\\out.prn")
    Call Z_CreatePrn(10, "\\\\allen\\Label")

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

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

語法:
  VC:
    int Z_CreatePort(int nPortType, int nPort, LPCTSTR filename);
  VB: VBA:
    Declare Function Z_CreatePort(ByVal nPortType As Long, ByVal nPort As Long, _
      ByVal filename As String) As Long
  VB.net:
    Declare Function Z_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 ZW-Error.txt file.

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

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

*******************************************************************************
Z_CreateUSBPort()
Z_CreateNetPort()
===============================================================================
功能: 開啟 Printer 工作。
       使用 Z_CreateUSBPort() 前需先呼叫 Z_GetUSBBufferLen(), 
       這是為了和 Z_EnumUSB() 及 Z_GetUSBDeviceInfo() 同步。
       使用 Z_CreateNetPort() 前需先呼叫 Z_GetNetPrinterBufferLen(), 
       這是為了和 Z_EnumNetPrinter() 同步。

語法:
  VC:
    int Z_CreateUSBPort(int nPort);
    int Z_CreateNetPort(int nPort);
  VB: VBA:
    Declare Function Z_CreateUSBPort(ByVal nPort As Long) As Long
    Declare Function Z_CreateNetPort(ByVal nPort As Long) As Long
  VB.net:
    Declare Function Z_CreateUSBPort(ByVal nPort As Integer) As Integer
    Declare Function Z_CreateNetPort(ByVal nPort As Integer) As Integer

參數:
    nPort;
      USB 傳輸埠 ; LAN 傳輸埠, nPort由1開始.

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

範例:
  VC:
    int nLen;
    nLen = Z_GetUSBBufferLen();
    if (nLen) {
      Z_CreateUSBPort(1);
    }
    nLen = Z_GetNetPrinterBufferLen();
    if (nLen) {
      Z_CreateNetPort(1);
    }
  VB: VBA: VB.net:
    Dim nLen As Long
    nLen = Z_GetUSBBufferLen()
    If nLen Then
      Call Z_CreateUSBPort(1)
    End If
    nLen = Z_GetNetPrinterBufferLen()
    If nLen Then
      Call Z_CreateNetPort(1)
    End If

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

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

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

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

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

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

語法:
  VC:
    int Z_Bar2d_Maxi(int x, int y, int nMode, int nSymbol, int nTotal, int nClass,
      int nCountry, char cZipCode1[6], char cZipCode2[4], LPCTSTR data, int increase);
  VB: VBA:
    Declare Function Z_Bar2d_Maxi(ByVal x As Long, ByVal y As Long, ByVal nMode As Long, _
      ByVal nSymbol As Long, ByVal nTotal As Long, ByVal nClass As Long, _
      ByVal nCountry As Long, ByVal cZipCode1 As String, ByVal cZipCode2 As String, _
      ByVal data As String, ByVal increase As Long) As Long
  VB.net:
    Declare Function Z_Bar2d_Maxi(ByVal x As Integer, ByVal y As Integer, _
      ByVal nMode As Integer, ByVal nSymbol As Integer, ByVal nTotal As Integer, _
      ByVal nClass As Integer, ByVal nCountry As Integer, ByVal cZipCode1 As String, _
      ByVal cZipCode2 As String, ByVal data As String, _
      ByVal increase As Integer) As Integer

參數:
    x;
      X座標.
    y;
      Y座標.(1 dot = 0.125 mm)
    nMode;
      Barcode mode
      2: Numeric Postal Code(US)
      3: Alphanumeric Postal Code(Non-US)
    nSymbol;
      Symbol Number: 1 ~ 8
    nTotal;
      Symbol Number 總數: 1 ~ 8
    nClass;
      three digit class of service
    nCountry;
      three digit country code
    cZipCode1;
      nMode = 2 --> five digit zip code
      nMode = 3 --> six character zip code
    cZipCode2;
      four digit zip code externsion. Only Used in nMode 2.
    data;
      資料字串, 最多84個字元.
    increase;
      增量, 預設值為0

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

範例:
  VC:
    Z_Bar2d_Maxi(50, 50, 2, 1, 1, 001, 840, "15238", "2802", "This MaxiCode", 0);
  VB: VBA: VB.net:
    Call Z_Bar2d_Maxi(50, 50, 2, 1, 1, 001, 840, "15238", "2802", "This MaxiCode", 0)

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

*******************************************************************************
Z_Bar2d_PDF417()
===============================================================================
功能: 印出一個 PDF417 2D Barcode。

語法:
  VC:
    int Z_Bar2d_PDF417(int x, int y, int o, int h, int s, int c, int r, int t, 
      int narrow, LPCTSTR data, int increase);
  VB: VBA:
    Declare Function Z_Bar2d_PDF417(ByVal x As Long, ByVal y As Long, ByVal o As Long, _
      ByVal h As Long, ByVal s As Long, ByVal c As Long, ByVal r As Long, _
      ByVal t As Long, ByVal narrow As Long, ByVal data As String, _
      ByVal increase As Long) As Long
  VB: VBA:
    Declare Function Z_Bar2d_PDF417(ByVal x As Integer, ByVal y As Integer, _
      ByVal o As Integer, ByVal h As Integer, ByVal s As Integer, ByVal c As Integer, _
      ByVal r As Integer, ByVal t As Integer, ByVal narrow As Integer, _
      ByVal data As String, ByVal increase As Integer) As Integer

參數:
    x;
      X座標.
    y;
      Y座標.(1 dot = 0.125 mm)
    o;
      列印方向定位，'1'是 0°，'2'是90°、'3'是180°，'4'是270°
    h;
      Barcode height for Individual Rows
      h * module = height of individusl rows
    s;
      錯誤校正等級 0～8
    c;
      column count
    r;
      row count
    t;
      Truncation flag，'0' 是 normal 和 '1' 是 truncated.
    narrow;
      模組高度.
    data;
      資料字串,最多84個字元.
    increase;
      增量,預設值為0.

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

範例:
  VC:
    Z_Bar2d_PDF417(50, 50, 0, 5, 5, 2, 83, 0, 2, "PDF-417", 0);
  VB: VBA: VB.net:
    Call Z_Bar2d_PDF417(50, 50, 0, 5, 5, 2, 83, 0, 2, "PDF-417", 0)

說明:  這個 Z_Bar2d_PDF417 函數可以列印出一個 PDF417 2D Barcode。

*******************************************************************************
Z_Set_FlashMemory()
===============================================================================
功能: 設定 FORM 儲存位置。

語法:
  VC:
    int Z_Set_FlashMemory(int Status);
  VB: VBA:
    Declare Function Z_Set_FlashMemory(ByVal Status As Long) As Long
  VB.net:
    Declare Function Z_Set_FlashMemory(ByVal Status As Integer) As Integer

參數:
    Status;
    儲存位置.
    0 -> RAM, 1 -> Flash Memory
    注意: Flash有使用壽命的限制,除非資料要重複使用,否則建議存到RAM.

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

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

說明:  這個 Z_Set_FlashMemory 設定 FORM 儲存位置。在使用 FORM 前，
    須先執行 Z_Set_FlashMemory().

*******************************************************************************
Z_Set_Format_New()
===============================================================================
功能: 設定 FORM (表格) 名稱。

語法:
  VC:
    void Z_Set_Format_New(LPCTSTR FormName);
  VB: VBA: VB.net:
    Declare Sub Z_Set_Format_New(ByVal FormatName As String)

參數:
    FormName;
      表格名稱。

範例:
  VC:
    Z_Set_Format_New("demo");
  VB: VBA: VB.net:
    Call Z_Set_Format_New("demo")

說明:  這個 Z_Set_Format_New 設定 FORM (表格) 名稱。在設定之後,可直接呼叫 FORM 列印.

*******************************************************************************
Z_Del_Format()
===============================================================================
功能: 刪除 FORM (表格)。

語法:
  VC:
    int Z_Del_Format(int memory, char FormName[11]);
  VB: VBA:
    Declare Function Z_Del_Format(ByVal nMem As Long, _
      ByVal formname As String) As Long
  VB.net:
    Declare Function Z_Del_Format(ByVal nMem As Integer, _
      ByVal formname As String) As Integer

參數:
    memory;
      儲存位置.
      0 -> RAM  , 1 -> Flash Memory.
    FormName;
      表格名稱。不可超過10字.

範例:
  VC:
    Z_Del_Format(0, "demo");
  VB: VBA: VB.net:
    Call Z_Del_Format(0, "demo")

說明:  這個 Z_Del_Format 可刪除儲存印表機內 FORM (表格)。

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

語法:
  VC:
    int Z_Del_Graphic(int memory, char GraphicName[11]);
  VB: VBA:
    Declare Function Z_Del_Graphic(ByVal memory As Long, _
      ByVal graphicname As String) As Long
  VB.net:
    Declare Function Z_Del_Graphic(ByVal memory As Integer, _
      ByVal graphicname As String) As Integer

參數:
    memory;
      儲存位置.
      0 -> RAM, 1 -> Flash Memory
    graphicname;
      圖形名稱。不可超過10字

範例:
  VC:
    Z_Del_Graphic(0, "girl");
  VB: VBA: VB.net:
    Call Z_Del_Graphic(0, "girl")

說明: 這個 Z_Del_Graphic 可刪除儲存印表機內的圖形。

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

語法:
  VC:
    int Z_Draw_Box(int x, int y, int width, int height, int thickness);
  VB: VBA:
    Declare Function Z_Draw_Box(ByVal x As Long, ByVal y As Long, _
      ByVal width As Long, ByVal height As Long, ByVal thickness As Long) As Long
  VB.net:
    Declare Function Z_Draw_Box(ByVal x As Integer, ByVal y As Integer, _
      ByVal width As Integer, ByVal height As Integer, _
      ByVal thickness As Integer) As Integer

參數:
    x;
      X座標.
    y;
      Y座標.
    width;
      框的長度 0 < width < 9999.
    height;
      框的寬度 0 < height < 9999.
    thickness;
      線條的粗細 > 0.

範例:
  VC:
    Z_Draw_Box(50, 100, 250, 100, 5);
  VB: VBA: VB.net:
    Call Z_Draw_Box(50, 100, 250, 100, 5)

說明:  這個 Z_Draw_Box 函數會畫一個框。

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

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

參數:
    x;
      X座標.
    y;
      Y座標.
    width;
      線的長度, 0 < width < 9999.
    height;
      線的寬度, 0 < height < 9999.

範例:
  VC:
    Z_Draw_Box(50, 100, 250, 3);
  VB: VBA: VB.net:
    Call Z_Draw_Box(50, 100, 250, 3)

說明:  這個 Z_Draw_Line 函數會畫一條線。

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

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

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

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

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

說明: 這個 Z_Get_DLL_Version 函數，讓使用者取得或秀出此函數庫版本資訊。
    由於 Z_Get_DLL_Version() 是回傳字串, 在 VB 和 VBA 的開發上, 需要使用 
    RtlMoveMemory() 去轉換然後才能取得, 此函式在使用上有技術上的難度, 
    因此 VB 和 VBA 的開發建議不要使用此函式, 請改用 Z_Get_DLL_VersionA(), 
    若一定要使用 Z_Get_DLL_Version(), 請參考 MSDN.
    
*******************************************************************************
Z_Get_Graphic_ColorBMP()
Z_Get_Graphic_ColorBMPEx()
Z_Get_Graphic_ColorBMP_HBitmap()
===============================================================================
功能: 將 BMP 圖檔轉換成灰階模式，並將圖形儲存在印表機內的 RAM 或 Flash Memory。

語法:
  VC:
    int Z_Get_Graphic_ColorBMP(int x, int y, int memory, LPCTSTR filename);
    int Z_Get_Graphic_ColorBMPEx(int x, int y, int nWidth, int nHeight,
      int rotate, int mem_mode, LPCTSTR id_name, LPCTSTR filename);
    int Z_Get_Graphic_ColorBMP_HBitmap(int x, int y, int nWidth, int nHeight,
      int rotate, int mem_mode, LPCTSTR id_name, HBITMAP hbm);
  VB: VBA:
    Declare Function Z_Get_Graphic_ColorBMP(ByVal x As Long, ByVal y As Long, _
      ByVal memory As Long, ByVal filename As String) As Long
    Declare Function Z_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 id_name As String, _
      ByVal filename As String) As Long
    Declare Function Z_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 id_name As String, _
      ByVal hbm As Long) As Long
  VB.net:
    Declare Function Z_Get_Graphic_ColorBMP(ByVal x As Integer, ByVal y As Integer, _
      ByVal memory As Integer, ByVal filename As String) As Integer
    Declare Function Z_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 id_name As String, _
      ByVal filename As String) As Integer
    Declare Function Z_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 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°。
    memory;
      儲存位置 0 -> RAM 1 -> Flash Memory.
      注意:Flash有使用壽命的限制,除非圖形資料要重複使用,否則建議將圖形存到RAM。
    id_name;
      給予一個識別名稱存放於印表機內，以後直接使用 Z_Load_Graphic() 即可將舊圖呼叫出來。
    filename;
      圖形檔名稱，可包含路徑。
      格式如：XXXXXXXX.XXX 或 X:\\XXX\\XXX.XXX
    hbm;
      GDI 的 HBITMAP HANDLE, 只支援 IMAGE_BITMAP 格式。

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

範例:
  VC:
    Z_Get_Graphic_ColorBMP(30, 20, 0, "bb.bmp");
    Z_Get_Graphic_ColorBMPEx(30, 20, 200, 150, 2, 1, "bb1", "bb.bmp");//180 angle.
    HANDLE himage = LoadImage(NULL,"bb.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    Z_Get_Graphic_ColorBMP_HBitmap(30, 20, 250, 80, 1, 1, "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 Z_Get_Graphic_ColorBMP(30, 20, 0, "bb.bmp")
    Call Z_Get_Graphic_ColorBMPEx(30, 20, 200, 150, 2, 1, "bb1", "bb.bmp") ' 180 angle.
    Dim himage As Long
    himage = LoadImage(0, "bb.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)
    Call Z_Get_Graphic_ColorBMP_HBitmap(30, 20, 250, 80, 1, 1, "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 Z_Get_Graphic_ColorBMP(30, 20, 0, "bb.bmp")
    Call Z_Get_Graphic_ColorBMPEx(30, 20, 200, 150, 2, 1, "bb1", "bb.bmp") ' 180 angle.
    Dim himage As Integer
    himage = LoadImage(0, "bb.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)
    Call Z_Get_Graphic_ColorBMP_HBitmap(30, 20, 250, 80, 1, 1, "bb2", himage) ' 90 angle.

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

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

語法:
  VC:
    int Z_Initial_Setting(int mode, LPCTSTR Source);
  VB: VBA:
    Declare Function Z_Initial_Setting(ByVal mode As Long, _
      ByVal Source As String) As Long
  VB.net:
    Declare Function Z_Initial_Setting(ByVal mode As Integer, _
      ByVal Source As String) As Integer

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

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

範例:
  VC:
    LPCTST aa = "^FO120,30\r\n";
    Z_Initial_Setting(0, aa);
      or
    Z_Initial_Setting(1, "initfile.txt");
  VB: VBA: VB.net:
    Dim aa As String
    aa = "^FO120,30" + Chr(13) + Chr(10)
    Call Z_Initial_Setting(0, aa)
      or
    Call Z_Initial_Setting(1, "initfile.txt")

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

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

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

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

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

範例：
  VC:
    const char sznop1[] = "nop_front\r\n";
    const char sznop2[] = "nop_middle\r\n";
    Z_WriteData(0, sznop2, (DWORD)strlen(sznop2));
    Z_WriteData(1, sznop1, (DWORD)strlen(sznop1));
  VB: VBA:
    Dim sznop1 As String = "nop_front" + vbCrLf
    Dim sznop2 As String = "nop_middle" + vbCrLf
    Call Z_WriteData(0, sznop2, Len(sznop2))
    Call Z_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 Z_WriteData(0, encAscII.GetBytes(sznop2), sznop2.Length)
    Call Z_WriteData(1, encAscII.GetBytes(sznop1), sznop1.Length)

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

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

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

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

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

範例：
  VC:
    int ret;
    char temp[100]={0};
    Z_WriteData(1, "~HS\r\n", 5);//~HS
    ret = Z_ReadData(temp, 82, 1000);//1 second.
  VB: VBA:
    Dim ret As Integer
    Dim temp As String
    temp = Space(100)
    temp = "~HS\r\n"
    Z_WriteData(1, temp, 5)   '~HS
    ret = Z_ReadData(pbuf, 82, 1000)   '1 second.
  VB.net:
    Dim ret As Integer
    Dim temp(100) As Byte
    Z_WriteData(1, encAscII.GetBytes("~HS\r\n"), 5)   '~HS
    ret = Z_ReadData(pbuf, 82, 1000)   '1 second.

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

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

語法:
  VC:
    int Z_Load_Graphic(int x, int y, int memory, char graphicname[11], int hori, 
      int vert);
  VB: VBA:
    Declare Function Z_Load_Graphic(ByVal x As Long, ByVal y As Long, _
      ByVal memory As Long, ByVal graphicname As String, ByVal hori As Long, _
      ByVal vert As Long) As Long
  VB.net:
    Declare Function Z_Load_Graphic(ByVal x As Integer, ByVal y As Integer, _
      ByVal memory As Integer, ByVal graphicname As String, ByVal hori As Integer, _
      ByVal vert As Integer) As Integer

參數:
    x;
      X 座標。
    y;
      Y 座標。(1 dot = 0.125 mm)
    memory;
      儲存位置. 0 -> RAM 1 -> Flash Memory.
      注意:Flash有使用壽命的限制,除非圖形資料要重複使用,否則建議將圖形存到RAM.
    graphicname;
      圖形檔名稱, 最大10個字元。
    hori;
      垂直放大倍數. 1 <= hori <= 10 預設為1.
    vert;
      水平放大倍數. 1 <= vert <= 10 預設為1.

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

範例:
  VC:
    Z_Load_Graphic(50, 30, 0, "phone", 1, 1);
  VB: VBA: VB.net:
    Call Z_Load_Graphic(50, 30, 0, "phone", 1, 1)

說明:  這個 Z_Load_Graphic 函數會列印一個圖形，而圖形必須先執行
    Z_Get_Graphic 載入印表機內的 RAM 或 flash memory。

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

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

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

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

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

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

*******************************************************************************
Z_Print_Form()
===============================================================================
功能: 列印一個 FORM (表格)，並輸入 FORM 的名稱，並設定跳號次數與列印份數。

語法:
  VC:
    int Z_Print_Form(int labset, int copies, int mem, char formout[11]);
  VB: VBA:
    Declare Function Z_Print_Form(ByVal labset As Long, ByVal copies As Long, _
      ByVal mem As Long, ByVal formout As String) As Long
  VB.net:
    Declare Function Z_Print_Form(ByVal labset As Integer, ByVal copies As Integer, _
      ByVal mem As Integer, ByVal formout As String) As Integer

參數:
    labset;
      列印的份數，範圍：1～32767。
    copies;
      複製的份數，範圍：1～32767。
    mem;
      Form儲存位置.
      0 -> RAM 1 -> Flash Memory.
    formout;
      表格名稱，同於之前載入的 FORM 名稱，或原先儲存在印表機內的 FORM。

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

範例:
  VC:
    Z_Print_Form(3, 2, 0, "demo");
  VB: VBA: VB.net:
    Call Z_Print_Form(3, 2, 0, "demo");

說明:  這個 Z_Print_Form 函數會送所有資料及表格到 Printer，這個函數使用前須先
    執行 Z_Set_Format_New()，並在所有函數之後，Z_ClosePrn() 之前執行。當使
    用此函數時，就不須執行 Z_Print_Out()。

*******************************************************************************
Z_Print_Out()
===============================================================================
功能: 列印所有資料。
PS:請使用Z_Print_OutQuality()函式.

語法:
  VC:
    int Z_Print_Out(int set,int copies);
  VB: VBA:
    Declare Function Z_Print_Out(ByVal sets As Long, ByVal copies As Long) As Long
  VB.net:
    Declare Function Z_Print_Out(ByVal sets As Integer, ByVal copies As Integer) As Integer

參數:
    sets;
      暫停和裁切的值.
    copies;
      資料列印份數.

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

範例:
  VC:
    Z_Print_Out(1, 1);
  VB: VBA: VB.net:
    Call Z_Print_Out(1, 1)

說明:  這個 Z_Print_Out 函數會送所有資料到 Printer，這個函數須在所有函數之後，
    Z_ClosePrn() 之前執行。

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

語法:
  VC:
    Z_Prn_Barcode(int x, int y, int ori, int narrow, int width, int height, char bar_type, 
      int increase, LPCTSTR data, char p1, char p2, char p3, char p4, char p5);
  VB: VBA:
    Declare Function Z_Prn_Barcode(ByVal x As Long, ByVal y As Long, ByVal ori As Long, _
      ByVal narrow As Long, ByVal width As Long, ByVal height As Long, _
      ByVal bar_type As Byte, ByVal increase As Long, ByVal data As String, _
      ByVal p1 As Byte, ByVal p2 As Byte, ByVal p3 As Byte, ByVal p4 As Byte, _
      ByVal p5 As Byte) As Long
  VB.net:
    Declare Function Z_Prn_Barcode(ByVal x As Integer, ByVal y As Integer, _
      ByVal ori As Integer, ByVal narrow As Integer, ByVal width As Integer, _
      ByVal height As Integer, ByVal bar_type As Byte, ByVal increase As Integer, _
      ByVal data As String, ByVal p1 As Byte, ByVal p2 As Byte, ByVal p3 As Byte, _
      ByVal p4 As Byte, ByVal p5 As Byte) As Integer

參數:
    x;
      X 座標。
    y;
      Y 座標。(1dot = 0.125mm)
    ori;
      列印方向定位，'1'是 0°，'2'是90°、'3'是180°，'4'是270°
    narrow;
      NARROW bar 寬度.
    width;
      WIDE bar 寬度.
    height;
      Bar code 高度.
    bar_type;
      Bar code 型式 (refer to below table -> Type).
    increase;
      增量.
    data;
      資料字串.
    p1,p2,p3,p4,p5;
      視 Barcode 的不同,有不同的意義.
      ╒════╤════════════════════════════╤══════════════════════════════════╕
      │Type│        條碼種類            │          使  用  參  數          │
      ╞════╪════════════════════════════╪══════════════════════════════════╡
      │    │                            │p1:確認碼   Y:1位數  N:2位數      │
      │ 1  │Code 11                     │p2:是否列印條碼資料               │
      │    │                            │p3:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印條碼資料               │
      │ 2  │Interleaved 2 of 5          │p2:條碼資料是否列印在 Barcode 上方│
      │    │                            │p3:是否列印確認碼                 │
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印確認碼                 │
      │ 3  │Code 39                     │p2:是否列印條碼資料               │
      │    │                            │p3:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │ 8  │EAN-8                       │p1:是否列印條碼資料               │
      │    │                            │p2:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印條碼資料               │
      │ 9  │UPC-E                       │p2:條碼資料是否列印在 Barcode 上方│
      │    │                            │p3:是否列印確認碼                 │
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印條碼資料               │
      │ A  │Code93                      │p2:條碼資料是否列印在 Barcode 上方│
      │    │                            │p3:是否列印確認碼                 │
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印條碼資料               │
      │    │                            │p2:條碼資料是否列印在 Barcode 上方│
      │ C  │Code 128 Subset A,B,C       │p3:是否列印UCC確認碼              │
      │    │Code 128 UCC                │p4:Code 128 subset A,B,C 或       │
      │    │                            │   Code 128 UCC                   │
      │    │                            │   N:Code 128   U:Code 128 UCC    │
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │ E  │EAN-13                      │p1:是否列印條碼資料               │
      │    │                            │p2:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │ I  │Industrial 2 of 5           │p1:是否列印條碼資料               │
      │    │                            │p2:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │ J  │Standard 2 of 5             │p1:是否列印條碼資料               │
      │    │                            │p2:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印確認碼                 │
      │    │                            │p2:是否列印條碼資料               │
      │ K  │ANSI Codabar                │p3:條碼資料是否列印在 Barcode 上方│
      │    │                            │p4:開始字元                       │
      │    │                            │p5:結束字元                       │
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │ L  │LOGMARS Code                │p1:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:確認碼  A:無確認碼             │
      │    │                            │           B:1 Mod 10             │
      │    │                            │           C:2 Mod 10             │
      │ M  │MSI Code                    │           D:1 Mod 10 and 1 Mod 11│
      │    │                            │p2:是否列印條碼資料               │
      │    │                            │p3:條碼資料是否列印在 Barcode 上方│
      │    │                            │p4:條碼資料是否列印確認碼         │
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印確認碼                 │
      │ P  │Plessey                     │p2:是否列印條碼資料               │
      │    │                            │p3:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │ S  │UPC/EAN Extensions          │p1:是否列印條碼資料               │
      │    │                            │p2:條碼資料是否列印在 Barcode 上方│
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │    │                            │p1:是否列印條碼資料               │
      │ U  │UPC-A Code                  │p2:條碼資料是否列印在 Barcode 上方│
      │    │                            │p3:是否列印確認碼                 │
      ├────┼────────────────────────────┼──────────────────────────────────┤
      │ Z  │POSTENET Code               │p1:是否列印條碼資料               │
      │    │                            │p2:條碼資料是否列印在 Barcode 上方│
      └────┴────────────────────────────┴──────────────────────────────────┘
      備註: p1,p2,p3,p4,p5 未註明, Y:列印  N:不列印, 如未使用到則可任意輸入值.

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

範例:
  VC:
    Z_Prn_Barcode(650, 15, 1, 2, 2, 51, 'C', 0, "1234567", 'Y', 'N', 'N', 'N', 'N');
  VB: VBA: VB.net:
    Call Z_Prn_Barcode(650, 15, 1, 2, 2, 51, Asc("C"), 0, "1234567", Asc("Y"), _
      Asc("N"), Asc("N"), Asc("N"), Asc("N"))

說明:  這個 Z_Prn_Barcode 函數可以列印出一個特定 Barcode.

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

語法:
  VC:
    int Z_Prn_Text(int x,int y,int ori,char font,int height,
        int width,int increase,LPCTSTR data);
  VB:
    Declare Function Z_Prn_Text(ByVal x As Integer, ByVal y As Integer, ByVal ori
        As Integer, ByVal font As Byte, ByVal height As Integer, ByVal width
        As Integer, ByVal numeric As Integer, ByVal data As String) As Integer

參數:
    x;
      X 座標。
    y;
      Y 座標。(1 dot = 0.125 mm)
    ori;
      列印方向定位，'1'是 0°，'2'是90°、'3'是180°，'4'是270°
    font;
      選擇字形, A～H:點陣字形, 0,P～V:線性字形.
      點陣字大小:
      ╒════╤════════╕
      │Font│  H * W │
      ╞════╪════════╡
      │ A  │  9 *  5│
      ├────┼────────┤
      │ B  │ 11 *  7│
      ├────┼────────┤
      │C,D │ 18 * 10│
      ├────┼────────┤
      │ E  │ 28 * 15│
      ├────┼────────┤
      │ F  │ 26 * 13│
      ├────┼────────┤
      │ G  │ 60 * 40│
      ├────┼────────┤
      │ H  │ 21 * 13│
      └────┴────────┘
    height;
      水平放大.
    width;
      垂直放大.
      font A～H 則輸入 Font Size 倍數, 最大值為 10 倍.
      font 0, P～V 則表示點數, 範圍:1～1500, 但各字形最大值各有不同.
    increase;
      增量.
    data;
      資料字串.

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

範例:
  VC:
    Z_Prn_Text(50, 110, 1, 'A', 90, 10, 0, "A123456");
  VB: VBA: VB.net:
    Call Z_Prn_Text(50, 110, 1, Asc("A"), 90, 10, 0, "A123456")

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

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

語法:
  VC:
    int Z_Prn_Text_Chinese(int x, int y, int fonttype, LPCTSTR id_name, LPCTSTR data, 
      int mem);
  VB: VBA:
    Declare Function Z_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 As Long) As Long
  VB.net:
    Declare Function Z_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 As Integer) As Integer

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

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

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

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

*******************************************************************************
Z_Prn_Text_TrueType()
Z_Prn_Text_TrueType_W()
Z_Prn_Text_TrueType_Uni()
Z_Prn_Text_TrueType_UniB()
===============================================================================
功能: 印出一行 True Type Font 文字。

語法:
  VC:
    int Z_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 Z_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 Z_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 Z_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 Z_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 As Long) As Long
    Declare Function Z_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 As Long) As Long
    Declare Function Z_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 Z_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 Z_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 As Integer) As Integer
    Declare Function Z_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 As Integer) As Integer
    Declare Function Z_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 Z_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)。
      FSize / FHeight / FWidth = (dpi * point) / 72.
    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;
      給予一個識別名稱存放於印表機內，以後直接使用 Z_Load_Graphic() 即可將舊圖呼叫出來。
    data;
      文字內容。
      Z_Prn_Text_TrueType_Uni()與Z_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;
      圖形儲存位置。0 -> RAM, 1 -> Flash Memory。
      注意: Flash有使用壽命的限制,除非圖形資料要重複使用,否則建議將圖形存到RAM.

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

範例:
  VC:
    char *pbuf = new char[128];
    Z_Prn_Text_TrueType(30, 100, 30, "Arial", 1, 400, 0, 0, 0, "AA", "TrueType Font", 0);
      //save in printer.
    Z_Prn_Text_TrueType_W(30, 160, 20, 20, "Times New Roman", 1, 400, 0, 0, 0, "AB", 
      "TT_W: 多字元測試", 0);
    Z_Prn_Text_TrueType_Uni(30, 220, 30, "Times New Roman", 1, 400, 0, 0, 0, "AC",
      L"TT_Uni: 多字元測試", 1, 0);//UTF-16
    strcpy(pbuf, "\xFF\xFE");//UTF-16.
    memcpy(&pbuf[2], (char *)L"TT_UniB: 多字元測試", 15*2);//copy mutil byte.
    Z_Prn_Text_TrueType_UniB(30, 280, 30, "Times New Roman", 1, 400, 0, 0, 0, "AD", 
      pbuf, 0, 0);//Byte Order Mark.
  VB: VBA:
    Dim buff1(128) As Byte
    Dim buff2() As Byte
    Dim i As Long
    Call Z_Prn_Text_TrueType(30, 100, 30, "Arial", 1, 400, 0, 0, 0, "AA", _
      "TrueType Font", 0) 'save in printer.
    Call Z_Prn_Text_TrueType_W(30, 160, 20, 20, "Times New Roman", 1, 400, 0, 0, 0, _
      "AB", "TT_W: 多字元測試", 0)
    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 Z_Prn_Text_TrueType_Uni(30, 220, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AC", buff1(0), 1, 0) '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 Z_Prn_Text_TrueType_UniB(30, 280, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AD", buff1(0), 0, 0) 'Byte Order Mark.
  VB.net:
    Dim pbuf(128) As Byte
    Dim encUnicode = System.Text.Encoding.Unicode
    Call Z_Prn_Text_TrueType(30, 100, 30, "Arial", 1, 400, 0, 0, 0, "AA", _
      "TrueType Font", 0) 'save in printer.
    Call Z_Prn_Text_TrueType_W(30, 160, 20, 20, "Times New Roman", 1, 400, 0, 0, 0, _
      "AB", "TT_W: 多字元測試", 0)
    Call Z_Prn_Text_TrueType_Uni(30, 220, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AC", encUnicode.GetBytes("TT_Uni: 多字元測試"), 1, 0) '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 Z_Prn_Text_TrueType_UniB(30, 280, 30, "Times New Roman", 1, 400, 0, 0, 0, _
      "AD", pbuf, 0, 0) 'Byte Order Mark.

說明:  這個 Z_Prn_Text_TrueType 函數可以印出一行 True Type Font 文字。

*******************************************************************************
Z_Clear_Memory()
===============================================================================
功能: 清除 Printer 內 RAM Memory 的資料。

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

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

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

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

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

參數：
    nMode;
      0 --> RAM。
      1 --> Flash Memory。

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

說明:  這個 Z_Clear_MemoryEx 函數清除 Printer 內 RAM 或 Flash Memory 的圖形、軟
    體字形。因為圖形、字形會一直累積在 memory 造成 overflow，正常時函數須在
    Print_Out() 之前送出。而當 memory 充滿指令，Printer 就會刪除先前載入的
    圖形和字形，為避免發生不當的刪除，須先在 Z_Print_Out() 之前送出。
    
******************************************************************************
Z_Set_Backfeed()
===============================================================================
功能: 設定標籤回收距離。

語法:
  VC:
    void Z_Set_Backfeed(int nDistance);
  VB: VBA:
    Declare Function Z_Set_Backfeed(ByVal nDistance As Long) As Long
  VB.net:
    Declare Function Z_Set_Backfeed(ByVal nDistance As Integer) As Integer

參數:
    nDistance;
      設定標籤回收的距離，範圍：0～999。單位 : dot

範例:
  VC:
    Z_Set_Backfeed(204);
  VB: VBA: VB.net:
    Call Z_Set_Backfeed(204)

說明:  這個 Z_Set_Backfeed 函數可以使印表機列印完後，多吐一小段標籤紙.

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

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

參數:
    darkness;
      設定熱感頭列印熱度，範圍：-30～30。printer 內定為 0

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

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

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

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

語法:
  VC:
    int Z_Set_DebugDialog(int nEnable);
  VB: VBA:
    Declare Function Z_Set_DebugDialog(ByVal nEnable As Long) As Long
  VB.net:
    Declare Function Z_Set_DebugDialog(ByVal nEnable As Integer) As Integer

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

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

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

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

*******************************************************************************
Z_Set_Label()
===============================================================================
功能: 設定紙張長度, 在連續紙時此值是需要設定的。

語法:
  VC:
    int Z_Set_Label(int Length);
  VB: VBA:
    Declare Function Z_Set_Label(ByVal Length As Long) As Long
  VB.net:
    Declare Function Z_Set_Label(ByVal Length As Integer) As Integer

參數:
    Length;
      連續紙張列印長度, 單位: 像素.

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

範例:
  VC:
    Z_Set_Label(300);
  VB: VBA: VB.net:
    Call Z_Set_Label(300)

說明:  這個 Z_Set_Label 函數設定標籤長度.

*******************************************************************************
Z_Set_Mode()
===============================================================================
功能: 啟動 Cutter 或 Peel。

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

參數:
    mode;
      T: tear off.
      P: peel off.
      C: cutter enable.

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

範例:
  VC:
    Z_Set_Mode('C');
  VB: VBA: VB.net:
    Call Z_Set_Mode(Asc("C"))

說明:  這個 Z_Set_Mode 函數為重要配置.

*******************************************************************************
Z_Set_Origin()
===============================================================================
功能: 設定 Y 座標開始列印位置。

語法:
  VC:
    int Z_Set_Origin(int y);
  VB: VBA:
    Declare Function Z_Set_Origin(ByVal y As Long) As Long
  VB.net:
    Declare Function Z_Set_Origin(ByVal y As Integer) As Integer

參數:
    y;
      Y 座標起始列印位置.

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

範例:
  VC:
    Z_Set_Origin(10);
  VB: VBA: VB.net:
    Call Z_Set_Origin(10)

說明:  這個 Z_Set_Origin 函數在設定 Y 座標起始列印位置.

*******************************************************************************
Z_Set_Paper()
===============================================================================
功能: 設定紙張為連續或不連續紙張。

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

參數:
    mode;
      N:連續紙張, Y:不連續紙張.

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

範例:
  VC:
    Z_Set_Paper('Y');
  VB: VBA: VB.net:
    Call Z_Set_Paper(Asc("Y"))

說明:  這個 Z_Set_Paper 函數在設定紙張為連續或不連續紙張.

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

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

參數:
    baud;
      鮑爾率.
      2400  -> 2400 baud.
      4800  -> 4800 baud.
      9600  -> 9600 baud.
      19200 -> 19200 baud.
      38400 -> 38400 baud.
    parity;
      Parity。
      0: none parity.
      1: even parity.
      2: odd parity.
    data;
      Data bit number，7 或 8。
    stop;
      Stop bit number，1 或 2。

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

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

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

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

語法:
  VC:
    int Z_Set_Prncomport_PC(int nBaudRate, int nByteSize, int nParity, int nStopBits, 
      int nDsr, int nCts, int nXonXoff);
  VB: VBA:
    Declare Function Z_Set_Prncomport_PC(ByVal nBaudRate As Long, _
      ByVal nBytesSize 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 Z_Set_Prncomport_PC(ByVal nBaudRate As Integer, _
      ByVal nBytesSize 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 -> 7-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 ZW-Error.txt file.

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

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

*******************************************************************************
Z_Set_Reset()
===============================================================================
功能: 回復到原工廠設定值。

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

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

說明:  這個 Z_Set_Reset 函數使用後, printer 會回復到原工廠預設值。

*******************************************************************************
Z_Set_Speed()
===============================================================================
功能: 設定 printer 列印時的速度。

語法:
  VC:
    int Z_Set_Speed(int s);
  VB: VBA:
    Declare Function Z_Set_Speed(ByVal s As Long) As Long
  VB.net:
    Declare Function Z_Set_Speed(ByVal s As Integer) As Integer

參數:
    s;
      speed, Value: 1 ~ 6.

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

範例:
  VC:
    Z_Set_Speed(3);
  VB: VBA: VB.net:
    Call Z_Set_Speed(3)

說明:  這個 Z_Set_Speed 函數在設定列印時的速度。

*******************************************************************************
Z_Set_TPH()
===============================================================================
功能: 設定 printer 的轉印模式。

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

參數:
    m;
      T: 熱轉.
      D: 熱感.

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

範例:
  VC:
    Z_Set_TPH('T');
  VB: VBA: VB.net:
    Call Z_Set_TPH(Asc("T"))

說明:  這個 Z_Set_TPH 函數為重要配置.

*******************************************************************************
Z_Set_Unit()
===============================================================================
功能: 設定度量單位為英吋或公尺或像素。

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

參數:
    m;
      D: dots.
      I: inches.
      M: millimeters.

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

範例:
  VC:
    Z_Set_Unit('D');
  VB: VBA: VB.net:
    Call Z_Set_Unit(Asc("D"))

說明:  這個 Z_Set_Unit 函數可更改度量單位為英吋或公尺或像素。

*******************************************************************************
Z_Set_Gap()
===============================================================================
功能: 設定 Gap 長度。

語法:
  VC:
    int Z_Set_Gap(int nPattern, int gapLen);
  VB: VBA:
    Declare Function Z_Set_Gap(ByVal nPatern As Long, ByVal gapLen As Long) As Long
  VB.net:
    Declare Function Z_Set_Gap(ByVal nPatern As Integer, _
      ByVal gapLen As Integer) As Integer

參數:
    nPattern;
      0 ~ 65535 (mm).
    gapLen;
      5 ~ 65535 (mm).

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

範例:
  VC:
    Z_Set_Gap(30, 20);
  VB: VBA: VB.net:
    Call Z_Set_Gap(30, 20)

說明:  這個 Z_Set_Gap 函數可設定紙張 Gap 長度,當 Gap > 5 mm 時,才使用此函數,且
    必須在 Z_Set_Label() 前執行。

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

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

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

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

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

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

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

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

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

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

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

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

*******************************************************************************
Z_Bar2d_QRCode()
===============================================================================
功能: 2D Barcod 列印。

語法:
  VC:
    int Z_Bar2d_QRCode(int x, int y, int nModel, int nMagni, int nErr_Cor, int nInput, 
      LPCTSTR data, int increase);
  VB: VBA:
    Declare Function Z_Bar2d_QRCode(ByVal x As Long, ByVal y As Long, _
    ByVal nModel As Long, ByVal nMagni As Long, ByVal nErr_Cor As Long, _
      ByVal nInput As Long, ByVal data As String, ByVal increase As Long) As Long
  VB.net:
    Declare Function Z_Bar2d_QRCode(ByVal x As Integer, ByVal y As Integer, _
      ByVal nModel As Integer, ByVal nMagni As Integer, ByVal nErr_Cor As Integer, _
      ByVal nInput As Integer, ByVal data As String, ByVal increase As Integer) As Integer

參數:
    x;
      X座標.
    y;
      Y座標.
    nModel;
      QR code種類
      1 --> original;
      2 --> enhanced    
    nMagni;
      Magnification Factor
      1 --> on 150 dpi printers
      2 --> on 200 dpi printers
      3 --> on 300 dpi printers
      4 --> through 10
    nErr_Cor;
      錯誤校正
      1 --> Ultra Hight Reliability
      2 --> Hight Reliability
      3 --> Standard
      4 --> Hight density
    nInput;
      1 --> Automatic
      2 --> Manual
    data:
      條碼資料.
    increase:
      增量值.

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

範例:
  VC:                                                    
    Z_Bar2d_QRCode(20, 20, 2, 2, 3, 1, "QR Code", 0);    
  VB: VBA: VB.net:                                       
    Call Z_Bar2d_QRCode(20, 20, 2, 2, 3, 1, "QR Code", 0)

說明:  這個 Z_Bar2d_QRCode 函數可列印 2D Barcod QR Code。

*******************************************************************************
Z_Set_PrintWidth()
===============================================================================
功能: 設定列印範圍。

語法:
  VC:
    int Z_Set_PrintWidth(int nDotWidth);
  VB: VBA:
    Declare Function Z_Set_PrintWidth(ByVal nDotWidth As Long) As Long
  VB.net:
    Declare Function Z_Set_PrintWidth(ByVal nDotWidth As Integer) As Integer

參數:
    nDotWidth;
      最大列印範圍.

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

範例:
  VC:
    int Z_Set_PrintWidth(406);
  VB: VBA: VB.net:
    Call Z_Set_PrintWidth(406)

說明:  這個 Z_Set_PrintWidth 函數可設定列印範圍。

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

語法:
  VC:
    int Z_Print_OutQuality(int nTotal, int copies, int sets, int nPause);
  VB: VBA:
    Declare Function Z_Print_OutQuality(ByVal nTotal As Long, ByVal sets As Long, _
      ByVal copies As Long, ByVal nPause As Long) As Long
  VB.net:
    Declare Function Z_Print_OutQuality(ByVal nTotal As Integer, ByVal sets As Integer, _
      ByVal copies As Integer, ByVal nPause As Integer) As Integer

參數:
    nTotal;
      列印總張數.
    sets;
      暫停和裁切的值.
    copies;
      同樣的標籤列印份數.
    nPause;
      是否要每sets張數都要暫停.
      1 -> Yes, 0 -> No.

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

範例:
  VC:
    Z_Print_OutQuality(1, 1, 1, 1);
  VB: VBA: VB.net:
    Call Z_Print_OutQuality(1, 1, 1, 1)

說明:  這個 Z_Print_OutQuality 函數會送所有資料到 Printer，這個函數須在所有函
    數之後，Z_ClosePrn() 之前執行。

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

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

參數:
    d;
      N -> 一般列印, Y -> 反轉列印.

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

範例:
  VC:
    Z_Set_Mirror('Y');
  VB: VBA: VB.net:
    Call Z_Set_Mirror(Asc("Y"))

說明: 這個 Z_Set_Mirror函數可控制開啟或關閉鏡射模式，不論在程式中被呼叫的位置
    為何，所有要列印的文字、條碼或圖案皆會依設定反轉或不反轉。在程
    式中若重複呼叫此函數，則以最後一次呼叫此函數的設定為主。

*******************************************************************************
Z_Bar2d_RSS()
===============================================================================
功能: 印出一個RSS條碼。

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

參數:
    x;
      X 座標。
    y;
      Y 座標。
    ori;
      列印方向。 
      N: 0°
      B: 90°
      I: 180° 
      R: 270°                                             
    rtype;
      條碼型別。
      1 -> RSS-14 
      2 -> RSS Truncated
      3 -> RSS Stacked
      4 -> RSS Stacked Omnidirectional
      5 -> RSS Limited
      6 -> RSS Expanded     
      (預設值: 1)      
    mag;
      放大倍率。 範圍: 1~10 (預設值: 1) 
    height;
      條碼高度。
      標準條碼最小高度限制:
      RSS-14                      -> 33 pixels                 
      RSS Stacked                 -> 13 pixels
      RSS Truncated               -> 13 pixels
      RSS Stacked Omnidirectional -> 69 pixels
      RSS Limited                 -> 10 pixels
      RSS Expanded                -> 34 pixels   
    seg;
      每列條碼可包含的最大資料區塊數量，只在使用RSS Expanded條碼時有效，
      在其它類型的RSS條碼中則為無效參數，範圍為2~22，預設值為22，且此值必需為偶數。 
    data1;
      數字型別的資料。
    data2;
      二維條碼的資料。

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

範例:
  VC:
    Z_Bar2d_RSS(100, 100, 'R', 6, 1, 34, 4, "1234567890", "RSS code");
  VB: VBA: VB.net:
    Call Z_Bar2d_RSS(100, 100, Asc("R"), 6, 1, 34, 4, "123456789012", "RSS code")

說明:  這個 Z_Bar2d_RSS 函數可以列印出一個 RSS Barcode。                        

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

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

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

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

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

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

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

語法：
  VC:
    int Z_Check_EncryptionKey(char decodeKey[8], char encryptionKey[16], DWORD dwTimeoutms);
  VB: VBA:
    Declare Function Z_Check_EncryptionKey(ByVal decodeKey As String, ByVal encryptionKey As String, _
      ByVal dwTimeoutms As Long) As Long
  VB.net:
    Declare Function Z_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 ZW-Error.txt file.

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

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

*******************************************************************************
Z_Bar2d_DataMatrix()
===============================================================================
功能: 印出一個 Data Matrix code。

語法:
  VC:
    int Z_Bar2d_DataMatrix(int x, int y, int o, int h, int c, int r, LPCTSTR data, int increase);
  VB: VBA:
    Declare Function Z_Bar2d_DataMatrix(ByVal x As Long, ByVal y As Long, ByVal o As Long, _
      ByVal h As Long, ByVal c As Long, ByVal r As Long, ByVal data As String, _
      ByVal increase As Long) As Long
  VB: VBA:
    Declare Function Z_Bar2d_DataMatrix(ByVal x As Integer, ByVal y As Integer, _
      ByVal o As Integer, ByVal h As Integer, ByVal c As Integer, ByVal r As Integer, _
      ByVal data As String, ByVal increase As Integer) As Integer

參數:
    x;
      X座標.
    y;
      Y座標.
    o;
      列印方向定位，'1'是 0°，'2'是90°、'3'是180°，'4'是270°
    h;
      barcode height(範圍：1～9999 pixels).
    c;
      column count(範圍：9～49, 必須為偶數值; 0為自動).
    r;
      row count(範圍：9～49, 必須為偶數值; 0為自動).
    data;
      資料字串.
    increase;
      增量,預設值為0.

RETURN
    0 -> OK.
    Reference ZW-Error.txt file.

Example:
  VC:
    Z_Bar2d_DataMatrix(50, 50, 1, 10, 0, 0, "DataMatrix", 0);
  VB: VBA: VB.net:
    Call Z_Bar2d_DataMatrix(50, 50, 1, 10, 0, 0, "DataMatrix", 0)

說明:  這個 Z_Bar2d_DataMatrix 函數可以列印出一個 Data Matrix code。

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

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

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

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

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

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

語法：
  VC:
    void Z_Get_CommTimeout(int *ReadTotalTimeoutConstant, int *WriteTotalTimeoutConstant);
  VB: VBA:
    Declare Sub Z_Get_CommTimeout(ByRef ReadTotalTimeoutConstant As Long, _
      ByRef WriteTotalTimeoutConstant As Long)
  VB.net:
    Declare Sub Z_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;
    Z_Get_CommTimeout(&ReadTotalTimeoutConstant, &WriteTotalTimeoutConstant);
  VB: VBA: VB.net:
    Dim ReadTotalTimeoutConstant, WriteTotalTimeoutConstant As Long
    Call Z_Get_CommTimeout(ReadTotalTimeoutConstant, WriteTotalTimeoutConstant)

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

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

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

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

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