文档打印过程操作非常简单,界面上清晰显示其功能。它为用户提供了照片打印的辅助工具。在打印之前,它可以调整图像的亮度、对比度和色调,让用户预览效果,满意后再开始打印。
【软件介绍】文档照片打印支持将文档打印成图片的工具。ImagePrinter可以将文档“打印(虚拟打印)”成BMP、PNG、JPG、PDF等文件,安装后将成为系统默认打印机。
【用法】1。将图片拖到窗口中。
2.调节亮度和对比度。
3.您可以直接打印或保存修改后的图片。
[软件功能] 1。一种司机。就像修改Render插件什么的。从没做过。
2.有两个印刷增层。
(1)定制打印处理器通常是在DDK修改genprint的一个例子。向打印文档打印处理器添加自定义代码。
(2)在监视器层。
实现打印拼接层的两种方式驱动程序层一般使用微软统一驱动程序(UniDrv)。
通过打印测试页,您可以了解安装的打印驱动程序的所有方面:驱动程序、端口等。也可以通过打印机的属性查看。
ImagePrinter以自定义端口的形式实现虚拟打印。
[软件描述]图像打印机是端口监视器上的虚拟打印机。
(1)系统启动时,依次调用以下函数:dll main-initializeprint monitor-ienumport(两次,上一次参数为NULL)-iOpenPort;
(2)打印文档时,依次调用以下函数:iStartDocPort - iWritePort(多次)- iEndDocPort。
以下是DDK的翻译(根据对代码的理解,有一些删减):
(1)初始化打印监视器。
假脱机程序调用LoadLibrary加载打印监视器DLL时,系统立即调用DLL的DllEntryPoint函数。此时可以使用LisableThreadLibraryCalls,这样在创建和删除线程时就不必使用这个通知DLL了。
每个DLL都导出一个初始化函数,后台打印程序在调用LoadLibrary后可以调用这个函数。语言监视器DLL和端口监视器服务器DLL导出InitializePrintMonitor2函数。端口监控UI DLL的导出InitializePrintMonitorUI函数。(总共有3台显示器)。
这两个初始化函数的作用是返回其他函数(enumports、openport、startdocport以及下面使用的所有其他函数)的指针,以便spooler可以调用它们。初始化功能还可以执行加载时间的初始化操作。
函数的作用是:返回一个监视器实例句柄。监视器应该分配本地内存来存储一些自定义信息,并使用这个句柄作为标识符来分配内存。
当假脱机程序第一次启动时(通常,当您启动假脱机程序服务时),它将加载所有安装的监视器DLL。调用监视器的所有初始化函数后,后台打印程序调用每个端口监视器的枚举导入函数,该函数列出监视器支持的端口。如果端口已添加到监视器的数据库中,则监视器支持该端口。然后打开每个支持的端口。
(2)打开和关闭端口。
Spooler通过调用语言监视器的OpenPortEx函数打开端口;对应的端口监视器调用OpenPort函数,语言监视器只返回从端口监视器的OpenPort获得的句柄。不用语言监视器,直接调整端口监视器的OpenPort功能。如果一个端口打开而没有关闭,则不能再次打开。
一旦端口打开,打印假脱机程序就可以调用其他函数来打印作业。这些函数使用OpenPort返回的句柄作为输入。端口何时关闭:系统关闭,没有打印任务。
(3)打印打印作业。
每个打印作业都以StartDocPort开始,以EndDocPort结束。当打印处理器调用后台打印程序的StartDocPrinter EndDocPrinter函数时,会调用这两个函数。在这两个函数调用的中间,调用了无限数量的writeport、readport和getprinterdatafromport函数。
这些函数需要使用OpenPortEx(或OpenPort)返回的端口句柄作为输入参数。
当假脱机程序调用语言监视器的WritePort函数将数据流发送到端口时,这些函数一般只在接收到的数据流中添加一些特定的语言信息,比如PJL命令,然后传递给相关端口监视器的WritePort函数。
读取功能用于获取双向打印机硬件的状态信息。语言监视器通过调用SetPort来获取状态信息,从而将信息发送给假脱机程序。后台打印程序无法调用读取端口的函数。
如果打印硬件是双向的,语言监视器和端口监视器都应该实现GetPrinterDataFromPort功能。语言监视器的GetPrinterDataFromPort函数以注册表值的名称作为输入,获取名称的值(通常通过调用相关端口监视器的WritePort和ReadPort函数),并将该值返回给调用者。端口监视器的GetPrinterDataFromPort函数应该接受一个I/O控制代码作为输入,调用DeviceIoControl将控制代码返回给端口驱动并返回结果。