【问题标题】:Dynamically change print data动态更改打印数据
【发布时间】:2013-01-27 06:18:46
【问题描述】:

我正在寻找一种方法来处理发送到打印机(目前是喷墨打印机。可能是 HP 2460)的数据。 我想在打印机每次尝试打印时动态更改数据。

即。在第 1 点,打印的页面将保持正常,但纸张可能会改变其位置,因此我正在寻找一种方法来旋转输入图像以对抗纸张的旋转。

我认为我正在寻找一种方法来指定要实时逐像素打印的数据。

数据输入可用:

  1. 旋转
  2. 打印头相对于页面角的位置 实时提供的每一个瞬间

到目前为止我所拥有的:

我见过一个例子,其中一个特定的 HP 喷墨打印机被修改为直接在 arduino 上工作,但我现在想直接从计算机上进行操作,原因有两个:

  1. 我需要尽快提交概念验证系统
  2. 我无法轻松访问逻辑分析仪/示波器以进行反转 设计通信协议(也可能是专业知识)。

我正在调查PostScript、GhostScript,但据我所知,我无法动态修改数据(仍在尝试解决,如果我错了,请原谅我)。这种方法行得通吗?还是我需要查看驱动程序或其他什么?

我知道提出问题的限制,以及研究不周的问题是如何令人不悦的。我仍在试图弄清楚如何完成这项工作,并且一直在研究我脑海中出现的所有事情,并且在浏览时遇到了问题。但是,到目前为止,我所看到的似乎都无法做我想做的事(或者我错过了它)。我问这个问题是希望得到一些关于要研究什么的指示。

【问题讨论】:

    标签: printing ghostscript postscript


    【解决方案1】:

    如果您的意思是操作每个页面,即此页面横向下一页纵向等,那么我将处理 postscript 输入,甚至不考虑具体的硬件通信。

    另一方面,您想在打印开始后抓住打印头并实时操作,那么该方法显然取决于特定的打印机。

    【讨论】:

    • 我想做后者。我想实时操作。在这种情况下我应该怎么做?
    • 正如我所说的,这取决于打印机,我可以肯定地说,你不能使用 postscript/ghostscript,因为它们严格按照一次一页的方式工作。
    • 补充一点,如果您有能力选择您的打印机,那么请选择具有您需要的硬件功能(我敢打赌大多数喷墨打印机无法向后滚动页面)以及众所周知的/开源控制语言。
    • 澄清一下,打印头不会由原始硬件控制,因此移动打印头不是问题(如果这就是您所说的“无法向后滚动页面”。“众所周知/开源控制语言”你能提一下吗?
    • en.wikipedia.org/wiki/Page_description_language。因为我真的只知道后记,而且我不知道你真正想要做什么,所以我要签字了..
    【解决方案2】:

    如果可能的话,我会尝试在更高的层次上做到这一点。最好是控制 postscript 的生成方式,然后您可以插入 <<...>> setpagedevice 来更改打印机参数。

    【讨论】:

    • 我可能听起来很固执或固执,但该项目的核心是根据接收到的实时数据来改变打印内容。一个更简单的问题类似物是,假设正在输入一系列字符。我希望在用户输入字符时打印字符。这怎么可能实现?据我了解,这在更高级别是不可能的,但我很可能会弄错。
    • 我担心你会说这样的话。不,你可能是对的。 “更高级别”无济于事。所以你需要控制打印机的处理器。这就像......嵌入式系统领域。天黑后我远离那里。 :)
    【解决方案3】:

    一个问题是大多数打印机制造商已停止分发有关打印机命令语言的文档。

    另一个问题是 ghostscript 输出设备已经过时了,比如点阵打印机。 (见问题一)。

    对于一个丝网打印输出应用程序,我对 epson 1400 打印命令语言进行了逆向工程,并编写了一个程序来将位图输出到打印机。然后我编写了一个基于 .bmp 驱动程序的 ghostscript 打印驱动程序,该驱动程序创建位图并将位图转换为 epson 命令。由于您想使用 HP,很遗憾,此代码无济于事。

    走了那条路,我可以告诉你这并不容易。喷墨打印机不允许旋转,因此您需要对喷墨打印机进行光栅化,然后重新创建旋转图像。 Ghostscript 本身很难使用 gsprint 和 redmon 运行到打印机,但如果您已经有直立打印的 postscript 作业,则可以使用 postscript 命令旋转和移动图像。

    我不明白你想要完成什么。您可以使用带有网络摄像头的电脑来预览方向,然后生成位图并将其打印到打印机,还是需要等到纸张就位后再生成打印数据?

    【讨论】:

      猜你喜欢
      • 2019-05-31
      • 2018-08-03
      • 2017-01-18
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多