在ZPL II语言的文档中有命令"~JA",它允许清除缓冲区中的所有作业.
不幸的是,它似乎不适用于Zebra GK420d(但我在打印机规范中也找不到任何关于它的信息).
我可以打印标签,例如将此字符串发送到打印机:
PUT
"^XA" SKIP
"^MMT" SKIP
"^LL1279" SKIP
"^PW799" SKIP
"^LS0" SKIP
"^BY5,3,387^FT633,947^B2B,400,Y,N,Y" SKIP
"^FD>:" v_value FORMAT 'x(8)' "^FS" SKIP
"^FT133,707^A0B,56,81^FH\^FD" v_value "^FS" SKIP
"^FT131,1100^A0B,56,81^FH\^FDVALUE:^FS" SKIP
"^PQ1,0,1,Y^XZ"
SKIP.
Run Code Online (Sandbox Code Playgroud)
然后,如果缓冲区中有超过2个标签,我尝试清除缓冲区:
PUT
"^XA" SKIP
"~JA" SKIP
"^XZ" SKIP
.
Run Code Online (Sandbox Code Playgroud)
没有结果.
我也试过PUT"~JA"SKIP.
再没有结果.
我找不到任何信息,为什么它不起作用或如何使用Zebra GX420d.
你能帮助我吗?使用此打印机可能无法做到这一点.
谢谢你的帮助.
最诚挚的问候,Wiktor
这是来自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)
我试图正确地证明我正在使用.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)
使用条形码时,字段块似乎被忽略,但对于文本,它可以正确地证明它是正确的.有任何想法吗?
我正在使用zebraGk420d打印机.我正在使用垂直条形码标签.如何垂直打印文本和条形码.我的zpl代码是这样的
$barcode_ZPL_code="^XA
^FO 150,50^AD,40^FH^FDSALABED_20CARGO^FS
^FO80,100^AD^BY2
^BCN,100,Y,N,N
^MD10
^FDLTX81316-1(1)-APP^FS
^FO1,250^A0N,20,20^FH^FDCOURIER_20TYPE_3ACHEDDI_20JAGAN_20AIPORT_20GUYANA_20OWN_20CLEARING_20TEST^FS
^FO1,280^A0N,20,20^FH^FDDESTINATION_3ASALABED_202CARGO_20PLOT_20710_20BLOCK_2012_20KISENYI_20ROAD_2E_2E_2E^FS
^FO1,310^A0N,20,20^FH^FDHEAD_20OFFICE_3AUNIT_204A_20ORBITAL_20BUSINESS_20PARK_205_20ARGON_20ROAD^FS
^FO106,340^A0N,20,20^FH^FDEDMONTON_20LONDON_20N18_203BW_20EMAIL_3AINFO_40SALABED_2ECO_2EUK^FS
^FO106,370^A0N,20,20^FH^FDTEL_3A_2B44_28020_29_208884_204060_20WEBSITE_3AWWW_2ESALABED_2ECO_2EUK^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) 我正在尝试使用ZPL II将扩展代码页850字符打印到Zebra S4M.每当使用其中一个扩展字符IE ASCII值> 127时,我得到一个不同灰度而不是实际值的框.
我正在尝试打印±和°(ALT + 0177和ALT + 0176).我怀疑它是我试图使用的RawPrinterHelper(从MS下载,另一个来自CodeProject)但是我无法看到字符代码出错的地方.
奇怪的是,直接从记事本打印呈现正确的字符,这使我相信它是原始打印机助手类的问题.
我不喜欢使用Raw Printer Helper类,所以如果有更好的方法,我很高兴看到它们.
样本ZPLII 没有转义字符
^XA
^FO30,200^AD^FH,18,10^FD35 ± 2 ° ^FS
^FS
^XZ
Run Code Online (Sandbox Code Playgroud)
逃脱的角色(试过大小写)
^XA
^FO30,200^AD^FH,18,10^FD35 _b0 2 _b1 ^FS
^FS
^XZ
Run Code Online (Sandbox Code Playgroud)
原始打印机助手
[StructLayout(LayoutKind.Sequential)]
public struct DOCINFO
{
[MarshalAs(UnmanagedType.LPWStr)]
public string printerDocumentName;
[MarshalAs(UnmanagedType.LPWStr)]
public string pOutputFile;
[MarshalAs(UnmanagedType.LPWStr)]
public string printerDocumentDataType;
}
public class RawPrinter
{
[
DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = false,
CallingConvention = CallingConvention.StdCall)]
public static extern long OpenPrinter(string pPrinterName, ref IntPtr phPrinter, int pDefault);
[
DllImport("winspool.drv", …Run Code Online (Sandbox Code Playgroud) 我的打印机是Zebra ZM400标签打印机,它连接到网络中的一台(通过USB连接).
我想通过网络和打印标签从我的电脑发送命令到标签打印机.
如何从网络连接该打印机和从Java应用程序打印标签?
我知道我要使用ZPL语言,但我不知道如何连接并向标签打印机发送命令.
可能吗?我在谷歌浏览但我找不到任何示例代码.
编辑
我使用了norbi771的方法..但是当它发送命令时,只是空白出来..
我的标签尺寸为3.25"x 3.75"..
这是我的标签示例代码..但没有任何结果..
public class TestLabelPrinter {
/**
* @param args
*/
public static void printLabel(String label, String company, String docDate) {
try {
FileOutputStream os = new FileOutputStream("\\\\192.168.42.57\\zd");
PrintStream ps = new PrintStream(os);
String commands = "^XA" +
"^LH30,30" +
"^F020,10^AD^FDZEBRA^FS" +
"F020,60^B3^FDAAA001^FS" +
"^XZ";
ps.println(commands);
ps.print("\f");
ps.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub …Run Code Online (Sandbox Code Playgroud) 我使用Zebra GT800标签打印机,标签角色尺寸为2.5'*1.75'.我正在努力使用ZPL命令将其调整到内部标签.我尝试使用粗体文本中的几个值,我在ZPL的用户指南中读到,但没有成功.
当使用值BY2时,它发生的是条形码超出标签的边缘.当我使用值BY1时,它太小而无法读取.下面是使用的ZPL命令.
^XA^FO150,100^**BY1**^BC,100,Y,N,N^FD00V11636000032562050^FS^XZ
^XA^FO150,100^**BY2**^BC,100,Y,N,N^FD00V11636000032562050^FS^XZ
Run Code Online (Sandbox Code Playgroud) printer-control-language thermal-printer zpl-ii zpl zebra-printers
使用版本:ZPL2.
格式前缀:^.
有人可以帮助如何^使用 ZPL II打印 caret( ) 字符。我们需要一些转义序列或任何其他方式将此 Format Prefix( ^)打印为普通字符。
注意:不要将格式 prefix( ^)更改为其他字符。
任何帮助将不胜感激。
我需要在标签上水平居中一些文本,这样如果文本的长度发生变化,它仍然会保持居中.
我正在使用XSLT来处理这样的格式:
<!-- Position from Home (3.75",4.00")-->
<xsl:text><![CDATA[^FT494,812]]></xsl:text>
<xsl:text><![CDATA[^A0B,62,62]]></xsl:text>
<!-- I am using the FB command to center the text -->
<xsl:text><![CDATA[^FB500,1,0,C]]></xsl:text>
<!-- Field Block -->
<xsl:text><![CDATA[^FD]]></xsl:text>
<xsl:value-of select="/lb:label/lb:MyDataField" />
<xsl:text><![CDATA[^FS]]></xsl:text>
Run Code Online (Sandbox Code Playgroud)
这样输出看起来像这样:
例A:
123 Good Street
1234567890 1234567890 1234567890
Run Code Online (Sandbox Code Playgroud)
要么
示例:B
123 Good Street
1234567890
Run Code Online (Sandbox Code Playgroud)
到目前为止,文本没有居中,结果如下:
123 Good Street
1234567890 1234567890 1234567890
Run Code Online (Sandbox Code Playgroud)