我正在C#中開發一個程序來處理UPS運輸請求,將它們註冊到客戶端數據庫中,並將新標籤發送到聯網的ZPL打印機。從c#編程切割ZPL打印機
我們正在使用帶切刀的GX420T Zebra打印機。打印標籤通過IP無任何問題。
我遇到了切割標籤的問題。客戶希望每個貨件的標籤連接,但是與其他貨件的標籤分開。 (即僅在打印所有貨物標籤後才切割)如果單一標籤的貨物按預期切割,則標籤被切割。隨着多個標籤的出貨,切割機從不運行。
bool print = true; //true: If printing fails on the first label,
// do not try the rest.
//false: do not print
//Set printer mode
print = parseZPL.printZPL_IP(@"^XA^MMD^XZ");
//Save and print Package labels
foreach (XElement package in Packages)
{ //Parse XML
if (package.Name.LocalName == "PackageResults")
{
//Pulling Package and Shipping label information from XML
string ShippingLabel = package.Element(ship + "ShippingLabel").Element(ship + "GraphicImage").Value;
//convert string to Base64
byte[] ZPLbytes = Convert.FromBase64String(ShippingLabel);
if (print)
{
print = parseZPL.printZPL_IP(System.Text.Encoding.ASCII.GetString(ZPLbytes));
}
}
};
if (print)
{
print = parseZPL.printZPL_IP(@"~JK");
}
我試圖〜JK命令之前加入一個睡眠()命令,沒有成功。我沒有找到可行的解決方案,而是搜索了ZPL文檔。
任何建議將不勝感激。謝謝!
據我記憶,^ MMC命令是爲了剪切。 – liquide
@liquide,我相信你是正確的,但是,它會在每個標籤後切割,而且我的客戶只有在打印特定貨物中的所有標籤後纔想切割。我會嘗試更新我的問題,以便更清楚地說明這一點。 – Abe
您的多貨標籤與單貨運標籤有什麼不同?例如打印機模式的重置?或者第二個標籤的printZPL_IP()的輸出爲false? (所以〜JK可能會因爲print == false而被忽略) – Johan