我有这个用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.
任何帮助,将不胜感激.谢谢!
我有Zebra MZ 220打印机,我需要通过蓝牙从我的Android应用程序打印二维码.我能够打印文本和图像,但不能打印QR码.
我发现了这个:https://km.zebra.com/kb/index?page = content&id = SO7133&actp = LIST_POPULAR
所以,这是我的代码:
new Thread(new Runnable() {
public void run() {
try {
// Instantiate connection for given Bluetooth® MAC Address.
ZebraPrinterConnection thePrinterConn = new BluetoothPrinterConnection("XX:XX:XX:XX:XX:XX");
// Initialize
Looper.prepare();
// Open the connection - physical connection is established here.
thePrinterConn.open();
// SO THIS SHOULD PRINT THE QR CODE BUT DOESN'T :(
thePrinterConn.write("! 0 200 200 500 1\r\nB QR 10 100 M 2 U 10\r\nMA,QR code ABC123\r\nENDQR\r\nFORM\r\nPRINT".getBytes());
//Make sure the …Run Code Online (Sandbox Code Playgroud) 我有一个包含upc号码的mysql数据库,我想用斑马打印机(LP2824)打印到标签上.我想以某种方式能够将这些数字直接发送到我的标签打印机,这不是没有提示用户的默认打印机.
据我所知,IE是唯一的选择,因为需要某种类型的activeX控件来实现这一点.我在meadroid.com上使用ScriptX找到了直接打印示例,但我不愿意支付他们的许可费.我还找到了一个使用VBScript的示例,该示例将页面发送到默认打印机而不提示用户.我的问题是我无法弄清楚如何删除IE中存在的默认页眉和页脚,我无法选择使用哪个打印机.
我的问题是:
是否有一个activeX控件,我可以通过类似于MeadCo的ScriptX的javascript使用但没有许可,或者VBScript方法会更好,在这种情况下,一个人如何删除页眉和页脚,并打印到标签打印机,这是没有设置为默认值?将一系列命令直接发送到打印机的能力是理想的.
这是我到目前为止的测试代码:
<head>
<script language='VBScript'>
Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>
</head>
<body>
Helo!!!
<a href="javascript:window.print();">Print</a>
</body>
Run Code Online (Sandbox Code Playgroud) 我写了一个库,它从一些用户输入创建一个位图图像.然后使用斑马打印机打印该位图.我遇到的问题是斑马打印机打印的图像上的一切都非常微弱和模糊,但如果我将位图打印到激光打印机,它看起来很正常.有没有人遇到这个,如果是这样,他们是如何解决它的?我已经尝试了几乎所有我能想到的打印机设置.
更新了我如何创建位图图像的代码.
public static Bitmap GenerateLabel<T>(T obj, XmlDocument template)
{
try
{
int width = Convert.ToInt32(template.SelectSingleNode("/LABELS/@width").Value);
int height = Convert.ToInt32(template.SelectSingleNode("/LABELS/@height").Value);
if (obj == null || height <= 0 || width <= 0)
throw new ArgumentException("Nothing to print");
Bitmap bLabel = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bLabel);
XmlNodeList fieldList = template.SelectNodes("/LABELS/LABEL");
foreach (XmlNode fieldDetails in fieldList)
{
//non important code...
g.DrawImage(bBarCode, field.Left, field.Top);
using (TextBox txtbox = new TextBox())
{
// more non important code...
Rectangle r = new Rectangle(field.Left, …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) 我正在使用RestKit来使用Web服务.RestKit工作正常,直到我尝试添加libZSDK_API.a库(此库是通过网络或蓝牙管理斑马打印机)
几个教程指出将RestKit添加到iOS项目的这一步:
但是当我添加库时,这个标志(-ObjC)导致编译错误,当我删除此标志时,iOS应用程序正确编译,但是当我执行应用程序时崩溃,因为Project没有-ObjC标志.
我收到此编译错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_Linea", referenced from:
objc-class-ref in libZSDK_API.a(LineaBtPrinterConnection.o)
(maybe you meant: _OBJC_CLASS_$_LineaBtPrinterConnection)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Link-OS SDK使用XCode for iOS中的GraphicsUtil类将图像发送到Zebra iMZ320打印机.
-(void)printImage:(UIImage *)image{
NSString *serialNumber = @"";
EAAccessoryManager *sam = [EAAccessoryManager sharedAccessoryManager];
NSArray * connectedAccessories = [sam connectedAccessories];
for (EAAccessory *accessory in connectedAccessories) {
if([accessory.protocolStrings indexOfObject:@"com.zebra.rawport"] != NSNotFound){
serialNumber = accessory.serialNumber;
break;
}
}
self.connection = [[MfiBtPrinterConnection alloc] initWithSerialNumber:serialNumber];
NSError *error = nil;
BOOL success = [self.connection open];
self.printer = [ZebraPrinterFactory getInstance:self.connection error:&error];
//Set the device language to zpl or the image prints its HEX value
[SGD SET:@"device.languages" withValue:@"zpl" andWithPrinterConnection:self.connection error:&error];
id<GraphicsUtil, NSObject> graphicsUtil = [self.printer …Run Code Online (Sandbox Code Playgroud) 有没有办法计算给定文本Zebra字体0的总宽度?考虑以下ZPL命令,
**^XA^FO100,150^A030,30^FDSample Text^FS^XZ**
Run Code Online (Sandbox Code Playgroud)
这里的字符高度和宽度都是30点.我想以mm为单位计算此文本的实际宽度.请注意,打印机DPI为300 ..............
我使用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