我发送了几个zpl文件到打印机测试它,它工作正常.
之后,我从UPS接收base64编码的zpl数据并创建一个文件并通过Java applet将其发送到打印机,现在我发送给它的任何zpl命令或文件都无能为力.
我把它放在诊断转储模式,发送一些命令,然后点击Feed,它只打印了它发送的命令列表..所以他们至少要经历,但它不会打印它们.
它可以打印其他数据,例如在向其发送图像时.
我正在尝试将标签从Android应用程序打印到Zebra打印机(iMZ 320),但似乎不了解我的命令行.
当我尝试这个示例代码时,打印机会在将它们发送到打印机时将所有命令打印到纸张上:
zebraPrinterConnection.write("^XA^FO50,50^ADN,36,20^FDHELLO^FS^XZ".getBytes());
Run Code Online (Sandbox Code Playgroud)
我已经阅读了Zebra官方网站上的ZPL编程教程,但我无法弄清楚如何使用ZPL命令使我的打印机正常工作.
我正在编写代码来打印植物园的标签.每个标签都单独打印,但每个标签上都有不同的信息.每个标签都包含一个科学名称,其大小可以变化很大,因此可以超过2行(我们的标签尺寸为10厘米宽,2.5厘米高).当我们超过24个字符时,我们的问题主要出现在名称上(参见**行).如果我们选择一个不超过24个字符的名称,那么打印就可以了.还有更多它不会打印.如果我们从标签上取下所有其他"项目"并只留下"name"元素,那么它只打印前24个字符并截断其余部分(我们这样做是为了测试我们的^ FB块和另一个元素之间是否可能重叠可能导致这个问题).我们尝试使用其他使用^ FB的元素,我们发现它们显示相同的行为,但发生此问题的长度不同:例如"cc"(国家/地区代码的缩写)限制为21个字符.
有关更多信息:我们在BASIC环境中编译此代码并使用变量,例如":name:",":Acc.dt":"如下所示.我们的数据库提供了这些信息,我们检查了任何内部例程我们的代码在ZPL中运行良好,但我们最近不得不转向ZPL II(我们购买了新型号GX430t)并且必须修改我们的ZPL代码,此时此问题开始发生.
这是我们的代码:
^XA
^LH40,40
^MMT
^PW1200
^LL1200
^FO16,05^A0N,35,^FDAcc. num.^FS
^FO170,05^A0,35,^FV":accnum:"^FS
^FO360,05^A0,35,^FV":qual:"^FS
^FO350,35^A0N,30,^FDAcc.dt.^FS
^FO450,35^A0N,30,^FB790,3,0,L,
^FH\^FV":accdt:"^FS
^FO430,70^^A0N,25,^FB790,3,0,L,
^FH\^FDProv. type^FS
^FO560,70^A0N,25,^FV":provtype:"^FS
^FO800,225^A0N,30,^FB790,3,0,L,
^FV":cc:"^FS
**^FO10,100^A0N,40,^FB790,3,0,L,
^FV":name:"^FS**
^FO1000,05^A0,35,^FV":proptype:"^FS
^FO5,225^A0,25^FVColl.^FS
^FO55,225^A0,25^FV":coll:"^FS
^FO375,225^A0,25,^FV":consstat:"^FS
^FO1000,70^A0,25,^FV":reqby:"^FS
^FO535,180^BCN,55,N,N,N^FV":qual:"^FS
^FO60,45^BCN,35,N,N,N^FV":accnum:"^FS
^PQ1,0,1,Y
^XZ
Run Code Online (Sandbox Code Playgroud)
以下是我们试图解决的问题(如果有些看起来像外卡,请道歉):
对此有任何想法将非常感谢克里
这是来自android的zpl代码
String zplcode="^XA^LRN^CI0^XZ\n" +
"\n" +
"^XA^CWZ,E:TT0003M_.FNT^FS^XZ\n" +
"^XA\n" +
"\n" +
"^FO10,50^CI28^AZN,50,50^F16^FDZebra Technologies^FS\n" +
"^FO10,150^CI28^AZN,50,100^F16^FDUNICODE^FS\n" +
"^FO020,260^CI28^AZN,50,40^F16^FDSwiss 721 Arabic: ????? ????????? ????? ????????^FS\n" +
"^PQ1\n" +
"^XZ";
mmOutputStream.write(message.getBytes());
Run Code Online (Sandbox Code Playgroud)
是否可以将RAW ZPL数据从GCP发送到无线打印机?当我尝试遵循GCP文档时,我看到添加了打印作业但打印从未通过(对于原始ZPL数据).
我能够通过GCP成功将PDF打印到普通打印机(非ZPL打印机).我主要使用Google Chrome进行测试.
有人有成功通过GCP打印原始ZPL数据吗?
我有这个用Zebra打印机打印的代码(RW 420具体)
StringBuilder sb = new StringBuilder();
sb.AppendLine("N");
sb.AppendLine("q609");
sb.AppendLine("Q203,26");
//set printer character set to win-1250
sb.AppendLine("I8,B,001");
sb.AppendLine("A50,50,0,2,1,1,N,\"za?ó?? g??l? ja??\"");
sb.AppendLine("P1");
printDialog1.PrinterSettings = new System.Drawing.Printing.PrinterSettings();
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
byte[] bytes = Encoding.Unicode.GetBytes(sw.ToString());
bytes = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding(1250), bytes);
int bCount = bytes.Length;
IntPtr ptr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(bCount);
System.Runtime.InteropServices.Marshal.Copy(bytes, 0, ptr, bytes.Length);
Common.RawPrinterHelper.SendBytesToPrinter(printDialog1.PrinterSettings.PrinterName, ptr, bCount);
}
Run Code Online (Sandbox Code Playgroud)
RawPrinterHelper是我从这里得到的微软课程.
我的问题是只打印ASCII字符,如下所示:
za g l ja
Run Code Online (Sandbox Code Playgroud)
缺少非ASCII字符.
有趣的是,当我打开记事本并将相同的文本放在那里并在Zebra打印机上打印时,所有字符都可以.
我正在使用以下命令打印对齐文本:
^FB1800,3,0,J^FT100,200^A0B,26,26^FH\^FDLONG TEXT TO BE PRINTED, WHICH DOESNT FIT IN ONLY 3 LINES...^FS
Run Code Online (Sandbox Code Playgroud)
命令^ FB1800,3,0,J打印宽度为1800点,最多3行的字段,对齐.
问题是,如果文本超过最大行数,它将覆盖最后一行!:(当然,这使得最后一行的文字难以理解.
我怎么能避免这种情况?有人知道是否有办法削减超出文本?
文档准确地说明了这种情况:
超过最大行数的文本将覆盖最后一行.更改字体大小会自动增加或减小块的大小.
供参考:我使用的是打印机Zebra 220Xi4.
任何帮助,将不胜感激.谢谢!
我不确定没有一些第三方库会有多可行,但是这里有:
我有一个450x900的图像,我试图打印.
问题是,我用来打印的方法是将原始数据发送到打印机.
图像分辨率为96dpix96dpi,打印机运行速度为203dpi.
所以......图像很小.
我需要增加图像的dpi,以"真实"尺寸打印它.
Bitmap b0 = LoadBitmap();
//I need to rotate it because for some odd reason it prints backwards and upside down.
b0.RotateFlip(RotateFlipType.Rotate180FlipX);
//Set a new resolution, 203dpi
b0.SetResolution(203, 203);
//I need to save and reload the bitmap, because RotateFlip compresses it.
//(annoying as hell, took me ages to figure out why it wasn't working.)
Stream imgStream = new MemoryStream();
b0.Save(imgStream, ImageFormat.Bmp);
b0 = new Bitmap(imgStream);
//get my byte array
ImageConverter converter = new ImageConverter();
byte[] …Run Code Online (Sandbox Code Playgroud) 我试图正确地证明我正在使用.Net程序中的ZPL进行打印的条形码.这是我目前的代码:
^FO10,50^FB500,1,0,R,0^AO,40,40^BY3^BCN,100,Y,N,N^FD1234567^FS^XZ
Run Code Online (Sandbox Code Playgroud)
使用条形码时,字段块似乎被忽略,但对于文本,它可以正确地证明它是正确的.有任何想法吗?
我使用 Zebra Designer 创建标签。但是我有一个问题来居中我的元素。
事实上,当我用 Zebra Designer 创建一个文本框时,它有一个固定的长度,当我替换里面的文本时(例如通过一个变量 Php 给我价格)==> 如果这个文本大于我定义的这个不聚焦。
所以我想创建一个文本框的标签宽度以及文本将在内部居中的位置,无论其长度如何
CT~~CD,~CC^~CT~
^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR5,5~SD15^JUS^LRN^CI0^XZ
^XA
^FT256,576^XG014.GRF,1,1^FS
^FT256,576^XG015.GRF,1,1^FS
^BY3,3,52^FT127,484^BCB,,Y,N
^FD>:$customer_key^FS
^FT56,429^A0B,28,28^FH\^FDTEXT_TO_REPLACE^FS
^FT197,401^A0B,28,28^FH\^FDTEXT_TO_REPLACE^FS
^BY3,3,57^FT781,434^BCB,,Y,N
^FO256,23^GB0,559,1^FS
^PQ1,0,1,Y^XZ
^XA^ID000.GRF^FS^XZ
^XA^ID015.GRF^FS^XZ
Run Code Online (Sandbox Code Playgroud)