还是自定义纸打印问题

CCJJGLXT 2010-01-08 04:40:06
十豆三老师:

我已经将VFP升到SP2,自定义纸(比A4宽点:22.86*9.31),报表不保存打印环境
现有三台打印机
本机:1600K,2000K,局域网上共享一台:1600K
如果保存报表时,选择的打印机是:本机的1600K,打印时选择本机的1600K和2000K都可以正常打印,但网上的1600K确不能正常打印(这台在共享机器上也定义了打印纸),是A4状态。
如果保存报表时,选择的打印机是:网上共享1600K,打印时选择共享机器可以正常打印,但本机的两台都不能正常打印,是A4状态。

并且,在打印时谁是默认打印机没有关系,结果一样。也许使用9*11纸可以正常打印,但不能合要求。
还请老师,再测一下,想想办法,看能不能两全齐美。先谢谢了!
...全文
296 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2010-01-11
  • 打赏
  • 举报
回复
那就不手动添加打印机


代码自动添加方式我知道的2种:
1、是用 VFP 的 “Set Printer To Name \\网络计算机名称或IP\共享打印机名称”方式自动添加

2、Windows 的 Net 命令:“net use \\网络计算机名称或IP\共享打印机名称”方式自动添加

自动添加后的打印机名称为“在 网络计算机名称 上自动 打印机名称”,如:“在 PC01 上自动 POS58”
必要时将网络打印机名称改名,以便于程序编写。
如果这种方式自动添加的网络打印机被删除,再用此方法是无法添加的,只有更改网络计算机名称或IP或共享名后再用此方式添加就可以了,这一点需要注意。
如果机器重装了或打印机更换了也要用此方法自动添加,不能用手动方式添加。
CCJJGLXT 2010-01-11
  • 打赏
  • 举报
回复
例如:局域网上同一台共享打印机(1600K)

端口 描述 打印机
手动添加的打印机: LPT1 打印机端口 Epson LQ-1600K
系统自动获取并安装的: \\材料库3\Epson LQ-1600k 本地端口 在材料库3上 自动Eposn LQ-1600k

手动添加的打印机不能识别“自定义纸”,不能正常打印,系统“自动获取并安装”的打印机能“自动识别”“自定义纸”,并正常打印。
十豆三 2010-01-11
  • 打赏
  • 举报
回复
1、我也是手动添加的打印机,端口不能修改应该权限不够。
2、这个应该与操作系统及打印机驱动有关吧。
CCJJGLXT 2010-01-11
  • 打赏
  • 举报
回复
十豆三老师:

我们都知道在“打印机和传真”里面的打印机有两类:一、是系统安装后自动在局域网和本地获取并安装的打印机(局域网上是共享的),这种打印机被安装后其名称里面有“自动”两个字。二、是我们手动添加的打印机。

问题1:局域网上同一台共享打印机,系统自动获取并安装的和我们手动安装的打印端口的设置是不一样的。由于这个端口的不同该打印机对“自定义纸”的识别出现了质的不同,在我这里,系统自动抓取的共享打印机,能够识别“自定义”打印纸,而手动添加的确不能。为什么共一台共享打印机,系统自动安装的跟手动安装的打印端口会不同?为什么安装的本地打印机和系统从局域网自动获取并安装的打印机,其打印“端口”可以更改,而手动安装的局域网上的共享打印机,其打倒“端口”不能更改?
问题2:在什么情况下系统才能自动的在局域网获取共享打印机,并自动安装它。(我的系统不知从什么时候开始,已经不再做这件事了,好象新安装的XP3也不再干这个活了。)


十豆三 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ccjjglxt 的回复:]
十豆三老师:
对于VFP来说,现在这不能不说是一个问题了。VFP的报表挺好用的,但是,一用到自定义纸,就存在自动识别问题了(特指局域网上的共享打印机)。我们不能要求用户自己去修改打印“端口”呀。
所以,我现在最想知道的就是,XP或W2003在什么条件下,才会自动获取局域网上的共享打印机,并自动安装。(原来XP和W2003系统是这样的,但现在好象不干了。???)
[/Quote]

我13楼已经给出我知道的了的。

应该还有其他工具(包括控件)可以你再找一找吧。
CCJJGLXT 2010-01-11
  • 打赏
  • 举报
回复
十豆三老师:
对于VFP来说,现在这不能不说是一个问题了。VFP的报表挺好用的,但是,一用到自定义纸,就存在自动识别问题了(特指局域网上的共享打印机)。我们不能要求用户自己去修改打印“端口”呀。
所以,我现在最想知道的就是,XP或W2003在什么条件下,才会自动获取局域网上的共享打印机,并自动安装。(原来XP和W2003系统是这样的,但现在好象不干了。???)
十豆三 2010-01-11
  • 打赏
  • 举报
回复
这种打印问题的确让人头痛。
CCJJGLXT 2010-01-11
  • 打赏
  • 举报
回复
十豆三老师:
问题有了新的进展:您仔细看

手动添加的网上共享打印机: LPT1 打印机端口 Epson LQ-1600K
它的端口不能改动,但在它的端口下拉表中有它自己的端口:\\材料库3\Epson LQ-1600k

手动添加的本地打印机: LPT1 打印机端口 Epson LQ-1600K
从形式上看,这台本地打印机跟上面的那台网上的共享打印机一样,但它的端口可以修改。
注意:现在我把下面这台本地打印机的打印端口,改为:\\材料库3\Epson LQ-1600k ,系统允许了。
我再调用程序,使用这台“本地”打印机时,你说会怎样??? 报表从人家打印机上正常打印输出了。

而上面手动添加的同一台打印机,还是不能正常打印的。


ap7676 2010-01-10
  • 打赏
  • 举报
回复
关注中 作个记号
十豆三 2010-01-09
  • 打赏
  • 举报
回复
我的测试环境及步骤:

电脑A》:
Windows XP (SP3) HP1020打印机 并共享了此打印机(共享名为HP1)
电脑B》:
Windows XP (SP3) HP1020打印机 添加了网络打印机HP1。即《电脑B》有2台打印机,一个本地打印机,一个网络打印机。
VFP9.0 (SP2)

两机器联网正常

在《电脑B》分别右单击这两台打印机,通过“属性”中的“打印首选项”手动添加了自定义纸张,自定义名称随意,两台自定义纸张名称也可以不一样,
但自定义纸张大小均为 150.0mm x 150.0mm(正文形,为了便于预览测试)

在《电脑A》打印机的“打印首选项”中不用设置自定义纸张,但如果《电脑A》中也要运行程序就必须添加自定义纸张了,
也就是说那个机器运行程序,那个机器用到的打印机就要添加自定义纸张,添加自定义纸张可以是手动,也可以是代码方式(略)。

我在《电脑B》设计了一个报表,选择的是本地打印机的自定义纸张,报表不保存打印机环境(即不选中报表 Page Setup 中 Page Layout 的 Save printer environment 选项)

我在《电脑B》编译后,在《电脑B》上运行程序,分别选择本地打印机和网络打印机,均可以用自定义纸张预览。
十豆三 2010-01-09
  • 打赏
  • 举报
回复
我的测试与我原来的实际应用一样,对于你的需求完全可以。
十豆三 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ccjjglxt 的回复:]
十豆三老师:
问题好象找到了:W系统自动抓取的打印机(带“自动”两字),这种打印机如果定义了打印纸,是可以完成打印的。如果删除它,然后再手动加上,便不能正常打印。
我看了一下,自动抓取的打印机和手动安装的打印机,打印“端口”不一样,而且不能改动。
W2003原来也是自动抓取打印机的,但不知那次升级之后,便不再自动抓取了。XP好象有的抓取,有的也不抓取了。您再试试,怎样解决???
[/Quote]

请详说
CCJJGLXT 2010-01-09
  • 打赏
  • 举报
回复
十豆三老师:
问题好象找到了:W系统自动抓取的打印机(带“自动”两字),这种打印机如果定义了打印纸,是可以完成打印的。如果删除它,然后再手动加上,便不能正常打印。
我看了一下,自动抓取的打印机和手动安装的打印机,打印“端口”不一样,而且不能改动。
W2003原来也是自动抓取打印机的,但不知那次升级之后,便不再自动抓取了。XP好象有的抓取,有的也不抓取了。您再试试,怎样解决???
CCJJGLXT 2010-01-08
  • 打赏
  • 举报
回复
现在看来,情况很简单(本地2000K是为了测试加上的):本地打印机能正常打,网上的共享打印机就不能正常打印(只打A4宽)。网上共享打印机能正常打印,本地打印机就不能正常打印。
这事种教人很为难了,编个打印服务器吧,我觉得放在服务器上还行,每个客户端跟一个,可能就复杂了。
CCJJGLXT 2010-01-08
  • 打赏
  • 举报
回复
十豆三老师:

自定义纸(22.86*9.31)就是9*11(常用纸)的三等分,报表不保存打印环境。您不需要有纸,就预览就通不过。
我想再明确一下:不保存打印环境,在9.0下就是“保存打印环境”不打勾,对吧。我就是这样做的。
问题是上面的结论我不好下,我还是想听到权威人士的声音。
十豆三 2010-01-08
  • 打赏
  • 举报
回复
前提:你的这3个打印机均添加了自定义纸张。

然后:启动VFP,设计报表,选择你本地选择1600K或2000K均可,设计完后,清除报表环境(这点最重要),然后编译程序。

最后:将你的程序放到本地来分别选择这三个打印机,你试一下。

由于手头打印纸没有特殊的,所以不好测试,抱歉。
十豆三 2010-01-08
  • 打赏
  • 举报
回复
你试过不保存报表环境吗?
相关推荐
发帖
VFP

2577

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
帖子事件
创建了帖子
2010-01-08 04:40
社区公告
暂无公告