gpt4 book ai didi

c# - 接收打印作业并将其转发到 LAN 中的打印机的软件

转载 作者:可可西里 更新时间:2023-11-01 11:39:48 25 4
gpt4 key购买 nike

我想创建一个软件,Windows 会将其检测为已安装的打印机驱动程序,并在“设备和打印机”下列出该软件

就像ImagePrinter 软件一样,您可以通过以下链接访问它。 http://sourceforge.net/projects/imageprinter/

当此图像打印机安装在计算机上时,Windows 会将其列在“打印机和设备”下,以便我们可以右键单击并在我们的网络中共享它。局域网用户可以将其添加为远程打印机并向其发送打印作业,它将打印作业转换为图像格式(jpg等)并保存在指定目录中。

我需要的是从 LAN 上的其他 PC(如 ImagePrinter)获取这些打印作业,并将它们发送到 LAN 中共享的真实打印机,就像从这台机器发送一样。 (就像运行我的软件的计算机发送这些打印作业一样)以便打印它们。

要做到这一点,我需要做两件事..1- 以 Windows 将其检测为打印机的方式创建软件(因此它可以轻松共享并接收打印作业)

2- 将打印作业发送到已安装的远程打印机,这些打印机已添加到运行我的软件的机器上,就像机器自己的打印作业一样。

我想用c#做(因为我其余的应用程序代码都是用C#写的,反正如果能组合在一起编程语言不是问题。)

请给我指示,甚至是一些要阅读的主题。因为我不知道如何构建它。只有一点信心,因为 ImagePrinter 是一个类似的软件..所以任务是可能的。

提前致谢。

最佳答案

这可以通过以正确的方式组合四种成分来完成:

  • 在 LAN 上共享带有 PostScript 打印机驱动程序的打印队列设置;
  • Ghostscript (向下滚动获取 gs871w{32,64}.exe)将 PostScript 转换为图像;
  • Redmon (下载redmon17.zip)作为“打印机端口监视器”;
  • 一个 DOS 批处理文件,可以完全按照您的意愿执行操作;

打印队列将使用“Red-irector Port Mon-itor”将传入的 PostScript 作业传送到您选择的程序/应用程序/批处理脚本。

剩下要做的就是你的工作:编写一个简单的程序/应用程序/批处理脚本,它会做三件事:

  1. 将传入的 PostScript 作为其输入,
  2. 调用 Ghostscript 命令行将输入转换为您选择的 %imageformat%,
  3. 最后将 %imageformat% 作为作业发送到您选择的打印机。

这里有一个文档,描述了一些关于 RedMon 的基本需要了解的事情:


这里有一些额外的提示:

如果您是 Ghostscript 的新手,您可能会遇到最大的问题,即构建一个可以满足您需要的命令行。这里有些例子。

第一个将从标准输入(命令末尾的标准输入,-)到达的数据转换为单页、黑白 TIFF G4,分辨率为 600dpi,其中每个page是一个单独的文件,名为page_001.tifpage_002.tif等:

gswin32c ^
-dBATCH ^
-dNOPAUSE ^
-dSAFER ^
-sDEVICE=tiffg4 ^
-r600x600 ^
-sOutputFile=c:/path/to/output/page_%03d.tif ^
- ### <-- note this!

这是一个 Ghostscript 命令行,它会生成相同的输出,但这次是一个单一的多页 TIFF G4:

gswin32c ^
-dBATCH ^
-dNOPAUSE ^
-dSAFER ^
-sDEVICE=tiffg4 ^
-r600x600 ^
-sOutputFile=c:/path/to/output/multi_page_g4.tif ^
- ### <-- note this!

您不需要黑白 G4 TIFF,而是彩色 TIFF、32 位 CMYK?好的,为 Ghostscript 使用不同的输出设备:

gswin32c ^
-dBATCH ^
-dNOPAUSE ^
-dSAFER ^
-sDEVICE=tiff32nc^
-r600x600 ^
-sOutputFile=c:/path/to/output/multi_page_color.tif ^
- ### <-- note this!

你想要 JPEG?抱歉,没有多页 JPEG 这样的东西。但是单页没问题:

set outputname=some-uniq-name && ^
gswin32c ^
-dBATCH ^
-dNOPAUSE ^
-dSAFER ^
-sDEVICE=jpeg ^
-dJPEGQ=95 ^
-r600x600 ^
-sOutputFile=c:/path/to/output/%outputname%-page_%03d.jpeg ^
- ### <-- note this!

关于c# - 接收打印作业并将其转发到 LAN 中的打印机的软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com