【问题标题】:Can you direct pdf print to a zebra printer你能将pdf打印到斑马打印机吗
【发布时间】:2014-07-22 12:52:49
【问题描述】:

是否可以通过 Java 中的斑马打印机直接打印存储的 pdf?我找不到任何关于它们与直接打印兼容的信息,也无法打印。我需要通过 zpl 直接通信吗?

斑马打印机在通过 Acrobat Reader 打印时工作正常,Adobe Reader 是否将 PDF 转换为 zpl?

【问题讨论】:

  • 不。使用驱动程序从 Acrobat 打印将 pdf 光栅化为 zpl 并以这种方式打印。如果您可以将 PDF 转换为图像,然后将图像转换并存储在打印机上(zebra 有一个 SDK 可以抖动并转换为每像素 1 位的 BW 图像),您可以通过调用它来打印该图像一些zpl
  • @OviTisler 这也适用于 Android 设备吗?也就是说,您能否将 PDF 或图像从 Android 设备打印到 Zebra 打印机?
  • 是的,如果您使用 Zebra android SDK

标签: java pdf adobe zebra-printers


【解决方案1】:

斑马打印机在通过 Acrobat Reader 打印时可以正常工作,Adobe Reader 是否会将 PDF 翻译成 zpl?

没有。 Adobe Reader 准备系统的打印服务可以使用的文档。然后打印服务调用 Zebra 驱动程序,这些 将文档转换为打印机的本地语言。这就是所有打印驱动程序在所有平台上的工作方式,而不仅仅是在 Windows 上。 CUPS 在 Linux 和 MacOS 上做同样的事情。

不要花时间构建 PDF => 图像 => ZPL 翻译器。让您的应用程序与操作系统本机打印服务对话会更好地利用您的时间。我不使用 Java,但在我选择的搜索引擎上花一点时间表明 Java 似乎支持这种打印方式。

【讨论】:

  • 如果您直接使用打印机的母语“对话”,那么您就是将您的应用程序与专有语言耦合,不是吗?难道没有一种更简洁的方法可以让标签的生成不受打印机的影响吗?我正在考虑图像或 PDF,甚至更多的声明性语言。抱歉,如果我没有抓住重点,但在我看来,这个问题几年前已经在桌面打印机上解决了,但我仍然不明白为什么我必须深入研究那些 CPCL 或 ZPL 语言,如果我可以避免的话。
  • ZPL、CPCL 和 EPL 是用于创建标签的相对较小的目标语言,许多打印机直接或通过驱动程序与它们兼容。如果它们满足您的需求,则无需走更复杂的路线。例如,我的雇主所做的事情需要特定的 Truetype 字体和其他在 ZPL 中难以实现的东西,这就是我们构建图像或 PDF 并让打印服务负责翻译的原因。一切都是为了正确的工作使用正确的工具。
  • 我明白了。假设您知道打印机分辨率 (dpi),您是否设法使用图像渲染清晰的标签?我担心渲染图像时可能会有损失。
  • 是的,我们匹配 DPI 和标签大小。例如,所有桌面 Zebra 打印机都是 203 DPI。只要图像保持纯黑白,清晰度就不是问题。任何存在的灰色阴影都会变得很糟糕。
  • 非常感谢,@Charles。这很有帮助。
【解决方案2】:

如果您有一台带有 Link-OS 的打印机,您可以从 Zebra 购买 PDF Direct 并将其安装在打印机固件上。然后,您可以将 pdf 直接发送到打印机。为此,我们连接到端口 9100 并发送 PDF。

https://www.zebra.com/us/en/products/software/barcode-printers/link-os/pdf-virtual-device.html

【讨论】:

    【解决方案3】:

    一种更好但不太可重用的方法是使用 ZPL 或 EPL(无论您的特定斑马打印机支持什么)。

    顺便说一句,ZPL 是 Zebra 专有的 Zebra 编程语言。您可以直接将 ZPL 字符串写入串行或并行端口,而无需安装任何 Zebra 驱动程序(而是使用 Windows 通用文本打印机驱动程序)。例如,您可以将以下字符串直接发送到打印机端口(串行、并行或网络)

    ^XA^FO40,40^AC2,20^FD^FS^FO40,60^BY2,2.8,10^BCN,100,Y,N,N^FD Barcode label ^FS^XZ
    

    希望对您有所帮助。

    【讨论】:

      【解决方案4】:

      您可以使用适用于 Android 和 iOS 的 Mobi Print Utility 将 PDF 打印到 Zebra 打印机。它可以打印蓝牙或wifi。

      【讨论】:

      • 能否请您分享此应用的 Android 链接(Playstore 链接)
      【解决方案5】:
      • 在 ios 上下载 Zebra 设置打印机:
        https://apps.apple.com/us/app/zebra-printer-setup-utility/id1454308745

      • 然后转到设备语言,然后选择 PDF。

      • 然后是一个简单的发布请求,例如:

        const pdfData = {
              uri: localUrl, // <- your file
              type: 'application/pdf',
              name: 'file_name',
          }
        
          const data = new FormData()
          data.append('pdf', pdfData)
        
          fetch(printerUrl, { // <- "http://${IP}:9100/pstprnt/"
              method: 'POST',
              headers: {
                  'Content-Type': 'multipart/form-data',
              },
              body: pdfData,
          })
        

      【讨论】:

      • @CarlosFranco 是的,你试过了吗?
      猜你喜欢
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多