我是Windows开发的新手,我正在尝试编写用户模式Windows(XP、Vista和7)虚拟打印机驱动程序。我的目标是拦截第三方应用程序发送到硬件打印机的输出,并在输出末尾向该输出添加一些额外的数据(文本+图形)。然后发送要由硬件打印机打印的最终负载。请注意,我的数据不会添加到机器的每份打印件中,而只会添加到特定的第三方应用程序中。我想在打印输出转换为任何页面描述语言(PDL)之前将我的额外数据添加到打印输出中。我可以这样做吗?我是否能够以正确的格式在输出的末尾按预期添加我的额外数据?如果是,那么我需要编写什么样的驱动程序以及在什么条件下layerofthearchitectur
第一次使用ZPL,我在谷歌上搜索我的问题,但到目前为止什么都没有。我已经下载了ZPLII编程语言pdf文件,并尝试打印第一个示例:^XA^FO50,50^ADN,36,20^FDTesting^FS^XZ我已经用上面的代码创建了txt文件,但是当尝试“复制”到打印机时没有任何反应。通过复制到打印机,我发现了这个:copyprinttest.txtusb1或copyprinttest.txt>usb1但这不起作用。我有一台S4M型Zebra打印机,通过USB连接:端口:USB001描述:USB的虚拟打印机端口我们将不胜感激。 最佳答案
如果打印机有问题,Windows的设备管理器会在有问题的打印机旁边显示一个特殊图标。我正在使用DelphiXE2,我想知道如何以编程方式检测WindowsXP或更高版本的此类信息,即。functionDetectDriversProblems():TStringList;begin//ScanComputerorqueryWindowstoknowifadriverhasissuesand//returnlistoffaultyhardware(ifany)end; 最佳答案 您可以使用Win32_PnPEntityWMI类和Con
我正在尝试构建一个PS脚本,以删除名称中包含“EXAMPLE”的所有网络打印机。到目前为止,我有以下代码:Get–WMIObjectWin32_Printer|where{$_.Network-eq‘true‘}|foreach{$_.delete()}但这会删除所有网络打印机。 最佳答案 由于您使用的是Windows7,您仍然可以使用WMI删除打印机。否则,其他替代方案使用.Net类System.Printing或System.Drawing.Printing中的方法。但看起来你只需要在你的whereblock中添加另一个过滤器G
我正在寻找一种使用非托管C++查找Windows默认打印机名称的方法(找到大量.NET示例,但没有成功非托管)。谢谢。 最佳答案 这里是如何获取当前打印机和默认打印机列表(如果有一台设置为默认打印机)。另请注意:如果用户没有打印机或未将打印机设置为默认值,则默认打印机名称长度为零是有效的。还应支持能够处理长打印机名称,因此首先使用NULL作为缓冲区指针调用GetDefaultPrinter将返回名称长度,然后您可以分配一个足够大的名称缓冲区来容纳该名称。DWORDnumprinters;DWORDdefprinter=0;DWORD
我们在终端服务器环境中创建PDF的解决方案存在问题。在创建PDF时,必须创建和销毁PDF打印机,但普通用户无权这样做。是否有机会在不使用打印服务器的情况下在用户session中创建打印机? 最佳答案 您需要编写一个可以打印PDF文件的Windows服务,并安装在服务器上。该服务应该监视终端用户上传的文件的文件夹,然后根据他/她的要求打印它们。由于Windows服务正在处理打印,因此不会有权限问题。 关于windows-如何在Windows中创建具有用户权限的PDF打印打印机?,我们在St
总结一下我的问题,我在一家使用激光制作贴在我们产品上的标签的公司工作。激光机附带了一个特定的标记软件,该软件具有一个API,我们将其与我们定制编写的软件一起使用来处理每个请求。现在,标记软件会保持打开状态,等待我们软件的请求,并会在请求时标记标签。我想改变这一切的运作方式。我想为激光制作一个虚拟打印机,它将接受打印请求并将该请求重定向到激光随附的标记软件。作为这个项目的一部分,我正在尝试对标记软件使用的文件结构进行逆向工程,以便我可以直接生成标签,然后只使用标记软件将它们发送到激光机。最终目标是扩大这种激光的有限使用范围,这样我就可以处理来自任何软件的打印请求。打印机驱动程序将用于限制
我正在使用WMI作为域管理员连接到我的实验室机器。然后我运行此命令行来创建打印机:cscriptC:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs-a-pTest002-m"CanonInkjetiP100series"-rFAKE002这很好用。然后我运行此命令行将打印机设置为默认打印机:cscriptC:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs-t-pTest002那根本行不通。一些相关的细节:两个命令行的执行方式相同如果我在本地范围内通
我正在使用PrintSpoolerAPI来自动执行一些打印机管理任务;目前我从事某些需要双向通信的功能,这不是问题(发送BIDI请求和读取输出数据按预期工作)但在尝试执行请求之前,我想确保acual设备支持BIDI通信(以避免任何COM异常)。有关PrintSpoolerComponents的文档解释说,应用程序和驱动程序都必须实现双向通信接口(interface);当然我是为我的应用程序做的(否则无法发送请求),但驱动程序通常由第三方提供。此外,打印提供程序DLL必须实现SendRecvBidiData函数...由于Enablebidirectionalcommunication选项
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我想创建一个虚拟打印机,将数据传递到我的.NET应用程序。然后我想创建一个安装程序来安装打印机和.NET应用程序。如果能够用C#编写这一切我们真的很高兴,但我感觉这将需要一个打印机驱动程序来编写非托管代码。有谁知道如何执行此操作的相当简洁的教程或示例?