【问题标题】:pass the data to printer as a raw data将数据作为原始数据传递给打印机
【发布时间】:2011-04-04 17:59:36
【问题描述】:

我正在使用在我的机器上定义为默认打印机的斑马打印机。

我想将所有信息作为原始信息传递给斑马驱动程序,告诉打印机驱动程序不要对任何进入打印机的内容进行编码,而是将其原封不动地传递。

我想用PrintDocument,可以吗?

或者你有什么建议吗?

【问题讨论】:

  • 你能举个API的例子吗?例如,如果 SDK 使用 C 或 C++,您可以发布示例吗?
  • 对于 Zebra 打印机,我发现使用 ZPL 是最简单的方法。
  • @Austin Salonen:我如何处理连接为默认打印机的斑马,我如何将数据发送到 ZPL 格式之后。
  • FTP 是最快的实现方式,IMO(将 ZPL 文件 FTP 到打印机)。使用套接字方法,您可以流式传输 ZPL,但它不像 FTP 方法那么容易。

标签: c# .net printing zebra-printers


【解决方案1】:

如果您进入 Zebra 打印机驱动程序的“高级设置”选项卡,您可以“启用直通模式”。然后,只需确保您的流以${ 开头并以}$ 结尾然后驱动程序不会对${ }$ 之间的内容做任何事情

【讨论】:

  • 使用 .NET 真的有效吗? (我认为这就是PrintDocument 的一部分。)我认为.NET 直接不支持打印机字体,因为它在打印时将所有内容呈现为图形。要使用直通模式,您需要使用打印机字体。
  • Zebra 驱动程序可以选择通过所有数据而不将其转换为位图。如果您只使用通用打印机驱动程序,您将无法获得此功能
  • 如果文本是 TrueType 字体,该直通选项是否有效,还是需要使用打印机字体?我使用 Zebra Designer 驱动程序。
  • 问题不在于字体,只是通过驱动程序将数据传递给打印机,而无需任何类型的 Windows/驱动程序转换魔法。如果您想在打印机上使用 TrueType 字体,则必须使用字体和图形下载器在打印机上下载您的字体,然后通过 ZPL 以在您的格式中使用该字体
  • 这不是我想做的。我想将 ZPL 命令传递给打印机,但我的应用程序只能使用 TrueType 字体进行打印。我无法通过工作。我认为这是因为直通不适用于 TrueType,并且 .NET 不能支持其他任何东西:km.zebra.com/kb/…stackoverflow.com/questions/783873/…
【解决方案2】:

根据我的经验,通过 Windows 打印驱动程序对于 Zebra 打印机来说过于复杂。如果您可以构建 ZPL,则有两种选择(一种真正简单,另一种稍微复杂):

  1. 将 ZPL 保存到文件中并将其通过 FTP 传输到打印机。
  2. 通过套接字将 ZPL 流式传输到打印机。

我过去都做过,据我所知,这两个系统仍然可以正常运行。

【讨论】:

  • 如果我的 Zebra 通过 USB 连接到计算机并定义为默认打印机,我不确定它是否具有通过 ftp 上传的 IP 地址。
  • 我相信你可以将文件复制到 LPT
  • 但是我通过 USB 连接。
【解决方案3】:

您不能只将任何原始数据打印到斑马打印机。打印机将仅识别打印机语言支持的命令,即:ZPL、EPL 或在某些型号中两者兼有。

只要将上述代码之一写入您要发送到打印机的文本文件中,就可以打印文档。例如:

^XA
^FO50,50
^A0N,30,30^FDTEST PRINT^FS
^XZ

将这些命令保存在记事本中,并将其另存为“test.txt”。 现在您可以通过执行以下 DOS 命令直接将该文档打印到打印机(假设打印机通过 LPT2 端口连接)

打开 DOS 提示符并输入:

copy test.txt lpt2

如果打印机通过 USB 端口连接,请安装“Generic / Text Only”打印机(Windows 默认可用),然后打开记事本并打印到 Generic / Text Only 打印机。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多