文档照片打印处理

文档照片打印处理是一款作上非常简便,各功能在界面上显示的非常清楚,为用户提供照片打印的辅助工具,在打印前可对图像进行亮度、对比度、色调等调整,用户能够预览到其效果,满意之后就能开始打印了。

文档照片打印处理软件介绍

文档照片打印处理支持将文档打印成图片的工具,ImagePnter可以将文档“打印(虚拟打印)”成BMP、PNG、JPG、PDF等格式的文件,安装后会成为系统的默认打印机。

文档照片打印处理使用方法

1、图片拖入到窗口

2、调整亮度和对比度

3、可以直接打印或保存修改的图片

文档照片打印处理软件功能

1、驱动层(Dver)一种。好像是修改Render plug-in什么的。没做过。

2、打印假脱机(splooer)层两种。

(1)自定义打印处理器(PntPcessor),一般是修改DDK中genpnt的例子。将自定义的代码加入到PntDocumentOnPntPcessor中。

(2)在监视(Monitor)层。

打印假脱机(splooer)层两种的两种实现方法驱动层一般都用微软统一驱动程序(UniDrv)。

通过打印测试页可以了解安装的打印驱动的各个方面:驱动程序、端口等。也可以通过打印机的属查看。

ImagePnter是用的自定义端口的形式实现虚拟打印。

文档照片打印处理软件说明

ImagePnter是在Port监视器端的虚拟打印机。

(1)在系统开机时,顺序调用以下函数:DllMain—>InitializePntMonitor—>iEnumPorts(2次,后一次参数都是NULL)—>iOpenPort;

(2)在打印文档时,顺序调用以下函数:iStartDocPort—>iWtePort(很多次)—>iEndDocPort。

以下是DDK的翻译(根据对代码的理解,有删减):

(1)初始化打印监视器

当spooler调用LoadLibrary来加载的打印监视器DLL,系统立即调用DLL的DllEntryPoint函数。可以在此时LisableThreadLibraryCalls,这样创建和删除线程时,不必非得这个DLL。

每一个DLL都导出一个初始化函数,可以供spooler在调用LoadLibrary后调用。Language monitor DLL和port monitor DLL导出InitializePntMonitor2函数。port monitor UI DLL的导出InitializePntMonitorUI函数。(总共有3中Monitor)。

这两个初始化函数的作用是返回其他函数(EnumPorts,OpenPort,StartDocPort等所有以下用的函数)的指针,这样spooler就可以调用它们了。初始化函数也可以执行load time的初始化作。

InitializePntMonitor2函数返回一个监视器实例句柄。monitor应分配本地内存来存储自定义的一些,并以此句柄为标识来分配内存。

当spooler第一次启动时(一般是开机时,如果你开机启动了spooler服务的话),它会载入所有已安装的monitor DLL的。所有Monitor的初始化函数调用后,打印后台处理程序调用每个port monitor的EnumPorts函数,其中列举了monitor支持的端口。monitor支持一个端口,如果端口已被添加到monitor的数据库。打开每个支持的端口。

(2)打开和关闭端口

spooler 通过调用language monitor的OpenPortEx函数打开端口;相对应的Port monitor调用OpenPort函数,language monitor只返回从Port monitor的OpenPort获得的句柄。如果没有language monitor,就直接调Port monitor的OpenPort函数。打开一个端口后不关闭的话,不能再打开。

端口一经打开,打印后台处理程序就可以调用其他函数来打印作业了。这些函数使用OpenPort返回的句柄作为输入。什么时候端口关闭呢:系统关机,没打印任务….

(3)打印打印作业

每个打印作业以StartDocPort开始,以EndDocPort结束。当pnt pcessor 调用的spooler的StartDocPnter EndDocPnter的函数时,这两个函数被调用。在这两个函数调用中间,不定量的WtePort, ReadPort, and GetPnterDataFmPort函数被调用。

这些函数都需要用到OpenPortEx(或OpenPort)返回的句柄( port handle)作为输入参数。

当spooler调用language monitor 的WtePort函数,以将数据流发送到端口时,这些函数一般只增加一些特定的语言到接收到的数据流上,如PJL命令将它传递给相关的port monitor的WtePort功能。

ReadPort函数是用于获取双向打印机硬件的状态。Language monitor 通过调用SetPort将发送到spooler,获得状态。spooler不能调用ReadPort的函数。

如果打印硬件是双向的,language monitor和port monitor 都应该实现GetPnterDataFmPort函数。language monitor的GetPnterDataFmPort函数以注册表值的名称为输入,获得该名称的值(通常由调用相关的端口监视器的WtePort和ReadPort功能),并返回值给调用者。port monitor 的GetPnterDataFmPort函数应该接受一个I / O控制代码作为输入,调用DeviceIoContl返回控制代码给port dver,并返回结果。

文档照片打印处理

文档照片打印处理

上一篇 2022-11-28

相关推荐

  • 文档照片打印处理

    文档照片打印处理是一款作上非常简便,各功能在界面上显示的非常清楚,为用户提供照片打印的辅助工具,在打印前可对图像进行亮度、对比度、色调等调整,用户能够预览到其效果,满意之后就能...
    2023-01-11
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)