terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:15060回复:41

W2kPrintDrvSample v0.01 released

楼主#
更多 发布于:2004-01-06 22:00
W2kPrintDrvSample

Copyright (C) 2004, terrificskyfox <terrificskyfox@yahoo.com.cn>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.


这是一个非常简单的Win2k下的打印驱动程序,用于将各种文档转换为bmp文件。

驱动程序的主体架构基于Win2k DDK中的oemdll例子,实现的功能和Win98 DDK中的cbitmap例子类似。

具体的说明见README.txt

附件说明:
1.使用Winzip(WinRar)解压
2.使用visual source safe Admin的restore project功能将.ssa文件导入就可以使用了


[编辑 -  1/6/04 by  terrificskyfox]
附件名称/大小 下载次数 最后更新
2004-01-06_W2kPrintDrvSample.zip (106KB)  1235

最新喜欢:

yyy2k3yyy2k3 vblue130vblue1... wheretowheret... wzbhbbwzbhbb
y5318
驱动中牛
驱动中牛
  • 注册日期2001-09-18
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-01-07 08:09
文件用始末工具打开, 楼主
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-07 08:44
文件用始末工具打开, 楼主


附件说明中我不是写了么
你有没有安装Visual studio中的Visual Source Safe 6.0,
如果没有,先装一个吧 :D
如果有,就使用它的Admin工具,在Archive菜单下,用restore project来恢复就可以了

visual source safe 就是一个类似gnu/linux下的cvs工具,版本维护系统
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-07 09:14
为了方便部分不会使用或者没有使用Visual Source Safe的朋友,
提供一个直接打包的版本,解开就可以使用。

注意:ui和uni中有部分文件是共享的,要保证它们被同步更新,在
文件头中有@file lib/filename这类标注的就是共享文件。

附件名称/大小 下载次数 最后更新
2004-01-07_W2kPrintDrvSample_src.zip (91KB)  1167
sf7509
驱动牛犊
驱动牛犊
  • 注册日期2001-12-19
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望6点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-01-08 09:44
拜年~~

谢谢~~~
 
无线感激~~~~

恩同再造~~~~~

高手风范~~~~~~~

高山仰止~~~~~~~~
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-08 19:32
太夸张了,受不起啊

如果大家有兴趣,可以提出自己对这个软件的建议并参与到它的开发和维护中来

建立一个真正的通用型的驱动程序框架
y5318
驱动中牛
驱动中牛
  • 注册日期2001-09-18
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2004-01-09 15:26
楼主,你在那里开发啊~_~
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-01-09 19:35
不知y兄的开发是什么概念,如果是每天泡在论坛上挨个回文章,那我真是不会
hxy2003
驱动牛犊
驱动牛犊
  • 注册日期2003-07-17
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-01-09 21:20

我在虚拟驱动开发时有一个这样的问题,我打印的时候得到一个SURFOBJ结构,是一个位图信息,请问如何把这个结构的数据存成一个BMP文件呢.多谢
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-01-10 14:29
如果你的打印驱动是基于unidrv的,并且使用gdi管理的surface,除非具体的设备有特殊的图像格式等方面的要求,一般具体的绘图任务都是回调给gdi的。

在解决具体的技术环节之前,必须对打印驱动的工作流程有一个清晰的认识。基于unidrv,使用gdi管理表面的驱动程序一般都有这样的处理流程:

enabledriver
enablePDEV-----init PDEV structure

startdoc
startpage
if(use banding)
{
   startbanding
   while(NOT at the end of page)
   {
      drawing(blt, path or text)
        (pre-process, callback to unixxx, post-process)
      nextband
      if(use imageprocess)
      {
          imageprocess----可以在这里得到bmp数据
                          使用这个函数时注意和gpd file的配合
      }
   }
}
else
{
   drawing(blt, path or text)
     (pre-process, callback to unixxx, post-process)
   sendpage
   if(use imageprocess)
   {
      imageprocess
   }
}
enddoc

disablePDEV
disabledriver

在清晰的了解了驱动程序的基本处理过程之后在深入的解决具体的技术环节,比上来什么都不清楚就过多地讨论细节要好的多。

上面的流程可以有很多的变化,不过这些变化主要集中在drawing部分的pre-process、post-process和imageprocess(可以用IPrintOemUni接口的其它函数替代)部分,主体的框架基本就是这样。

另外还可以将数据压缩等等加入到上面的流程当中。

需要注意的是驱动程序是否使用banding是动态决定的,取决于数据量的大小,因此在nextband和sendpage函数中都要做好输出数据的准备。

具体函数的使用方法你可以参考msdn文档中的相关部分。
msdn->windows development->driver development kit->display and print drivers->print drivers and spool components
里面有非常多重要的信息,你先把它们仔细研究一下吧
尤其是print driver architecture(打印驱动的基本结构)、customizing microsoft print drivers(定制方法)和microsoft unidrv print driver(讲gpd file)这三部分

你现在应该比较清楚在哪里做什么了


[编辑 -  1/10/04 by  terrificskyfox]

[编辑 -  1/10/04 by  terrificskyfox]
hamal
驱动牛犊
驱动牛犊
  • 注册日期2004-02-09
  • 最后登录2004-07-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-02-12 11:05
请问你使用的MSDN什么版本?我在的是2000版,怎么找不到你说的内容?
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-02-12 19:32
我现在用Oct 2003的,2003年的应该都有,2000的不清楚,可能路径
不同,内容肯定是存在的。

不行你也可以用2000ddk自带的帮助文件,一样的东西,最新的msdn
中增加的内容大部分都是关于WinXP和Win2003 server的,影响不大。


请问你使用的MSDN什么版本?我在的是2000版,怎么找不到你说的内容?


[编辑 -  2/12/04 by  terrificskyfox]
jjryu
驱动牛犊
驱动牛犊
  • 注册日期2004-08-26
  • 最后登录2004-09-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-09-07 16:37
请问这个程序里面如何设置打印彩色位图?我的QQ14272692,我想请教一下你!

[编辑 -  9/7/04 by  jjryu]
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-09-07 22:08
在打印机属性页的“纸张/质量”页面中选择“颜色”就可以了


请问这个程序里面如何设置打印彩色位图?我的QQ14272692,我想请教一下你!

[编辑 -  9/7/04 by  jjryu]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
14楼#
发布于:2004-09-07 22:42
好,学习。。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
szjacky
驱动牛犊
驱动牛犊
  • 注册日期2002-06-19
  • 最后登录2011-06-04
  • 粉丝0
  • 关注0
  • 积分152分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-09-09 16:56
楼主真牛!我刚好在学习做打印机驱动,真时逢时,谢谢楼主老大!!!
guanglitian
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2010-06-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-09-17 15:32
 :D无限感激,支持!!!!!!!!!!!!!!!!!!!!
guanglitian
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2010-06-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-10-10 15:27
请教一下楼主:
    我在这个基础上作了一些改动,把所有的位图变成jpeg,并写到一个文件中去,发现有两个问题,后来发现这个问题原来就有,请问如何解决?
    1.打印的彩色图片和原来的彩色不一样,我始终找不到原因。
    2.当打印多张彩色图片时,速度特别慢,把属性改成直接打印也不行,改变端口也不行,是不是要做个端口监视器,给他发送命令?
   希望楼主帮帮,不胜感激!
guanglitian
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2010-06-14
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-10-19 15:16
所有问题已解决,再次感谢楼主
lzlyz9999
驱动牛犊
驱动牛犊
  • 注册日期2004-11-07
  • 最后登录2009-03-10
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望15点
  • 贡献值1点
  • 好评度5点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2005-05-08 16:19
我在这个基础上作了一些改动,把所有的位图变成jpeg,并写到一个文件中去,发现有两个问题,后来发现这个问题原来就有,请问如何解决?
1.打印的彩色图片和原来的彩色不一样,我始终找不到原因。
2.当打印多张彩色图片时,速度特别慢,把属性改成直接打印也不行,改变端口也不行,是不是要做个端口监视器,给他发送命令?
希望楼主帮帮,不胜感激!


请教楼主、guanglitian,如何解决这两个问题的?
上一页
游客

返回顶部