【问题标题】:How to print duplex with winspool.drv in golang如何在golang中使用winspool.drv进行双面打印
【发布时间】:2018-03-30 01:24:45
【问题描述】:

我需要基本的打印功能来打印可变页面大小的 PDF。我能够使用我刚刚发布的以下代码 here。 但是,尝试访问打印机选项以使 PDF 进行双面打印似乎非常复杂。

有没有一种简单的方法可以让这些 PDF 进行双面打印?

【问题讨论】:

  • 我是否更正了“双面打印”的意思是“一张纸的同一面上的两页”(也称为“小册子”)?或者也许“在每张纸的每一面打印”(而不是让每张纸的另一面保持空白)?
  • 如果 PDF 中有两页,当前每页打印在单独的一张纸上。因此,我想在一张纸的正面打印第 1 页,在背面打印第 2 页。就我而言,我正在打印 Legal 或 Letter 尺寸的纸张。这说明清楚了吗?
  • 我开始相信没有人在 golang 中真正做到过这一点。在这一点上,我将不得不探索使用令人失望的 cgo。

标签: windows go printing


【解决方案1】:

刚刚遇到这个。如果没有在 Windows 中呈现 PDF 然后打印它,我不确定您正在做什么。

您正在做的(我认为)是将 PDF 直接发送到支持直接打印 PDF 的打印机 - 并非所有打印机都这样做。

这意味着它不会发送任何有关打印机选项的命令,并且它会绕过 Windows 打印驱动程序,您可以尝试在您发送的 PDF 的开头添加一些 PJL(打印机作业语言)命令。

如果您不能让它工作或控制您需要的东西,那么您需要有一些东西来渲染 PDF 并将其与打印机驱动程序一起打印成本地打印机语言,例如 PCL 或 Postscript。在 Windows 中打印通常涉及图形设备接口 (GDI) 或 WPF 与为您的打印机安装的打印机驱动程序一起工作。此路线应使您可以访问打印机的所有打印机驱动程序选项。

【讨论】:

  • 我同意你的看法。最后,因为我无法弄清楚 GO 中的渲染,我关掉了 windows 并转到了 linux。 linux 中的 CUPS 对打印有很多支持,并且可以接受命令,因此可以简单地使用 EXEC 包来执行此操作。有点麻烦,但最终切换到 linux 服务器使这成为可能,并且能够控制双工、装订和可变页面大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多