LouYongZhi
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2018-05-31
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2058回复:10

Win98打印驱动问题

楼主#
更多 发布于:2003-08-08 18:06
在Win98下的虚拟打印。
打印Word完全正常,
打印Excel只能打印出左上角一部分。
因为Word软件是自己设置页面,而Excel是读取驱动页面支持信息。
所以,我怀疑是 输出页面大小 小于 设置的页面大小的缘故。

为此,我改了一些代码,包括:
改了ExtDeviceMode 的 DEVMODE 结构中页面大小和分辨率
改了DeviceCapibilites 的 DEVMODE 结构中页面大小和分辨率
改了Enable 的 GDIINFO 结构中的页面大小和分辨率

改完后发现还是和原来一样,打印Excel只能打印出左上角一部分。
我没辙了,只能请各位大虾帮帮忙了。
 :(
tyong_obt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-16
  • 最后登录2005-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-11 14:14
你好!
你在Win98下做的虚拟打印机程序,可以拿出来给我们参考一下吗?
我也正在做这方面的,在此谢谢了!
tyong_obt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-16
  • 最后登录2005-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-11 15:09
还有我在98下制作虚拟打印机
使用SetDefaultPrinter(\"Virtual Printer\");没有起作用
在2000下却可以,还望指教
tyong_obt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-16
  • 最后登录2005-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-11 16:56
怎么添加打印机端口呀?
hcheng_qi
驱动老牛
驱动老牛
  • 注册日期2002-11-07
  • 最后登录2006-04-13
  • 粉丝1
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-11 18:41
那应该是excel自身的问题
excel好像是根据页面的宽度来确定可以打印几列
也就是说,如果excel认为你这个页面的大小只能打印两列的话,
即使这两列你缩的很小,它也不会将第三列的内容和这两列的内容合并起来打印,因此你看到的好像是只能打印左上角一点。
你将你的列宽度加宽就应该可以看到效果了
| -''/"',___,,--''"`-,_¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡ `6_ 6¡¡)¡¡ `-,¡¡(¡¡¡¡),`-.__.`)¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡ /_Y_./',, _¡¡)¡¡`._¡¡`,``-..-'¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡_.'.`='¡¡ _ / / --'_.','¡¡¡¡¡¡¡¡¡¡¡¡ (il)'¡¡¡¡¡¡(li)''¡¡ ((!-'¡¡¡¡ÃÃÃÃ! ±ðÅÜ£¿!
LouYongZhi
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2018-05-31
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-19 13:50
源代码是不可能给大家的。这是公司的财产。:(
添加端口代码(Win 2000)如下:
AddPort(NULL,NULL,\"Local Port\");
\"Local Port\"
这是打印监视服务器名称,都在注册表里有。
Win 2000的注册表:HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors\\

至于Win98的Excel打印问题是这样的:
DDK 98默认是每英寸100分辨率。
如果我设置为每英寸600分辨率,
这时候只能打印宽1/6,高1/6的区域(1/36)
如果我设置为300
这时候只能打印宽1/3,高1/3的区域(1/9)

宽度、高度我也设置了,就是不起作用
LouYongZhi
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2018-05-31
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-19 13:54
关于Win98 的设置默认打印机
可以修改Win.ini文件
具体怎么改,你自己钻研去
使用API:

WriteProfileString
WritePrivateProfileString
(两个里面忘了我用哪个了)
tyong_obt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-16
  • 最后登录2005-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-19 15:34
谢谢你的给的提示
你说的改Win.ini可以看看配置后Win.ini内容吗?
tyong_obt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-16
  • 最后登录2005-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-08-19 16:27
to LouYongZhi :
你好!
我在win.ini中修改如下:
[windows]
load=
run=
NullPort=None
device==AGFA-AccuSet 1000,PSCRIPT,LPT2://我添加的
怎么重新启动后不能设置为默认,还是其他的打印机为默认
还望指教!
tyong_obt
驱动牛犊
驱动牛犊
  • 注册日期2003-07-16
  • 最后登录2005-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-08-19 18:32
在98下设置默认打印机我解决了
现在面临的是添加端口,还请多指教!
谢谢!
LouYongZhi
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2018-05-31
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-08-26 13:12
添加端口:
1.修改Win.ini
device==AGFA-AccuSet 1000,PSCRIPT,LPT2:
改成
device==AGFA-AccuSet 1000,PSCRIPT,MyPort

2.AddPort函数
游客

返回顶部