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コマンドの前にsleep()コマンドを追加しようとしましたが、成功しませんでした。私は働いている解決策を見出すことなくZPLドキュメントを精査しました。
ご意見をいただければ幸いです。ありがとうございました!
私が覚えている限り、^ MMCコマンドはカット用です。 – liquide
@liquide、私はあなたが正しいと信じていますが、各ラベルの後に切れ、顧客は特定の出荷のすべてのラベルが印刷された後にのみカットしたいと考えています。私は質問をより明確にするように更新しようとします。 – Abe
複数の出荷ラベルと1つの出荷ラベルで異なるものはありますか?例えばプリンタモードのリセット?または、2番目のラベルのprintZPL_IP()の出力はfalseですか? (〜JKはprint == falseのためスキップされるかもしれません) – Johan