我们正在尝试将条形码从网页打印到我们的Zebra打印机 .
我想知道是否有办法使用打印机自己的字体打印它们,也许使用网络字体或者我知道使用的字体名称?
我一直在尝试使用php条形码生成器,它基本上生成包含条形码的图像 . 事实上,我已经尝试了几天,没有成功 .
问题是当我打印它们时扫描仪无法读取 . 我试图改变图像分辨率以匹配打印机的图像分辨率(203dpi),也尝试使用图像大小和格式进行播放,但打印后的条形码仍然无法扫描 .
那么有人有这方面的经验吗?
打印机:Zebra TLP 2844
每页需要条形码:
-
01 Code39水平(仅在非常特定的尺寸和浏览器下打印时可扫描)
-
01 Code128垂直(仍然可以't get it to work, print is always very blurry and won't扫描)
===========
我已经取得了一些进展,我发现这台打印机支持EPL2语言,所以我试图用它打印出条形码 .
首先我需要启用传递模式,我在打印机选项>高级设置>杂项上执行了此操作 .
现在我可以使用打印机的内置字体无可挑剔地打印条形码:D使用此命令:
ZPL:B10,10,0,1,2,2,60,N,“TEXT-GOES-HERE”:ZPL
但是我只能从记事本打印出来,我仍然无法从浏览器中打印出来......这可能是LF被CR LF取代的问题......
如何克服这个问题?
===========
我试图打印的标签实际上在条形码之前有一些文字,一些html表格很好地格式化 . 所以我需要首先打印它,在中间我需要粘贴一个漂亮的标签,然后再添加一些文本 .
所以我不能用纯EPL2来打印整个东西,我想知道我是否可以使用一些html EPL2 html来实现我的目标还是不允许? = /
8 回答
你遇到了一些障碍:
1)当您通过OS安装的打印机驱动程序进行打印时,打印机驱动程序正在尝试获取发送给它的数据并(重新)光栅化或缩放它以用于输出设备(Zebra打印机) . 由于打印机在203dpi时的分辨率相对较低,因此打印驱动程序必须进行缩放并不需要太多,因为它会使条形码的质量失去一些完整性 . 这就是使用直接ZPL命令生成的条形码更可靠的原因 .
2)由于Web浏览器不允许访问客户端计算机而有目的地提供安全性,因此无法直接与客户端连接的打印机进行通信 . 此沙箱有助于保护用户免受恶意软件的侵害,因此恶意网站无法执行将文件写入客户端计算机或将输出直接发送到打印机等设备的操作 . 因此,您无法通过浏览器直接将ZPL命令发送到客户端连接的打印机 .
但是,有一种方法可以按照您的描述进行操作 . 如果您对访问尝试打印到Zebra打印机的站点的客户端计算机有一定程度的控制,那么必要的步骤通常才有用 . 例如,这只会由公司网络上的计算机使用,或者由愿意安装您需要编写的小型应用程序的客户使用 . 为此,您需要查看以下步骤:
A)您需要编写自己的自定义MIME类型 . 这基本上只是你想要使用的任何名称都不会与任何registered MIME types冲突 .
B)接下来,您将定义一个文件扩展名,该扩展名将映射到您的自定义MIME类型 . 为此,您通常需要配置Web服务器(此步骤取决于您使用的Web服务器),以允许您要定义的新MIME类型以及用于这些类型文件的文件扩展名 .
C)然后在您的Web应用程序上,当您想要输出ZPL数据时,使用映射到新MIME类型的文件扩展名将其写入文件 . 然后,一旦生成文件,您可以提供HTML链接,或将客户端浏览器重定向到该文件 . 此时,您可以通过手动将直接创建的文件复制到原始打印机端口来测试文件是否正常工作 .
D)接下来,您需要编写一个可以安装在客户端上的小应用程序 . 安装应用程序后,您需要将其自身注册为自定义MIME类型的有效消费应用程序 . 如果浏览器检测到已安装的应用程序用于指定MIME类型的文件,它只是将该文件写入客户端计算机上的临时目录,然后尝试使用临时文件启动相同的已注册MIME类型的应用程序应用程序的参数 . 因此,您的应用程序现在只读取浏览器传递给它的文件,然后尝试将其直接转储到打印机 .
这是您需要的概述要做到完成你所描述的 . 某些具体步骤取决于您使用的Web服务器类型以及客户端所使用的操作系统 . 但这是高级概述,可以让您完成您的尝试 .
如果您考虑加载一个Java小程序,qz-print(以前的jzebra)可以完全按照您所描述的内容进行操作,并且可以与评论中提到的LP2844一起使用 .
https://code.google.com/p/jzebra/
我们为我们的网络应用做了什么:
1)下载免费的printfile应用程序http://www.lerup.com/printfile/
“PrintFile是一个免费的MS Windows实用程序,可以让您快速,轻松地打印文件 . 该程序可以识别纯文本,PostScript,封装的PostScript(EPS)和二进制格式 . 使用这个程序可以节省大量的纸张,从而也节约宝贵的自然资源 . “
首次运行PrintFile时,请进入高级选项并启用“直接发送到打印机” .
2)在Windows中将ZEBRA打印机设置为通用文本打印机 .
2)在Web应用程序中生成一个file.prt文件,该文件只是一个纯文本EPL文件 .
3)双击下载的文件将立即打印条形码 . 奇迹般有效 . 你甚至可以设置PrintFile,这样你甚至不会看到gui .
我正在开发类似的东西 . 我需要从我的webapp打印到LP2844 . 问题是我的webapp位于 Cloud 端的远程服务器(Amazon EC2)中,打印机将位于仓库中 .
我的解决方案:webapp为带有条形码的标签生成EPL2 code,然后发布PubNub message . 我写了一个小的C#程序,它在连接打印机的计算机上运行 . 程序接收消息,然后将代码发送到打印机 .
您还可以在文本文件中发送ZPL命令(您可以在单个文件中打包多个标签)并让用户打开并通过Windows记事本打印文件 . 唯一需要注意的是,他们必须删除默认的页眉和页脚(文件 - >页面设置) .
它有一些用户培训,但如果您无法控制客户端计算机,则可以接受 .
我遵循“Tres Finocchiaro”在我的应用程序中提出的想法基于:
ASP.NET 4.0
IIS
Chrome,IExplorer,Firefox
Zebra TLP 2844
EPL协议
不幸的是,由于当前浏览器的安全性问题,_981505需要进行一些改进以进行核心工作 .
安装jzebra
Downlod jzebdra和dist目录我复制到你的目录(例如
mydir
):网
mydir
js
..
deployJava.js
lib
..
qz-print.jar
qz-print_jnlp.jnlp
创建print.html
提供的代码基于“jzebra_installation / dist / sample.html” .
我正在使用QZ Tray将网页上的标签打印到Zebra热敏打印机 .
在QZ Tray的
demo/js
文件夹中,有三个与QZ Tray应用程序通信所需的JavaScript文件 -dependencies/rsvp-3.1.0.min.js
,dependencies/sha-256.min.js
和qz-tray.js
.在项目中包含这些JavaScript文件,如下所示:
将标签打印到Zebra热敏打印机的最简单方法如下所示 .
有关更多信息,请参见How to print labels from a web page to Zebra thermal printer .
尝试创建一个控制客户端打印的websocket,并将带有ajax的数据从页面发送到localhost .
原始打印:
html页面:
然后从html发送一个ZPL代码(在textarea代码上写这个);