虚拟打印如何取消另存为,而是直接保存?

zhuhuojun1983 2013-08-22 09:58:25
虚拟打印如何取消另存为,而是直接保存?
...全文
343 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxn8008 2013-08-30
是安装的虚拟打印机吗?恐怕不行吧
回复
zhuhuojun1983 2013-08-25
我调用的是OFFICE的Microsoft Office Document Image Writer虚拟打印机,现在问题是打印的时候会跳出要我保存的提示,我想问的就是怎么让它后台自动保存,
回复
做梦的猫 2013-08-25
不好意,搞错了,上面是后台打印已存在的 PFD 文件。应该是这个: 转贴: 要安装gs705w32.exe 和 Acrobat 的虚拟打印机。 1. 下载安装gs705w32.exe http://www.processlist.com/info/gs705w32.html 2. 安装 gs705w32.exe ,默认安装路经为c:/gs。 3. 安装虚拟打印机 1) 直接在 控制面板 > 打印机和传真 > 添加打印机,端口任意,默认的LPT1就可以; 2) 打印机驱动是PowerBuilder9.0自带的,就在PowerBuilder9.0的安装文件夹下, 选择从 磁盘安装 > X:\Program Files\Sybase\Shared\PowerBuilder\drivers, 选择 ADIST5.INF,读取到五个驱动: Acrobat Distiller, Acrobat Distiller CS, Acrobat Distiller CT, Acrobat Distiller J, Acrobat Distiller K 选择第一个Acrobat Distiller 4. 在代码中利用SaveAs()输出 pdf 文件: int li_rc string ls_title = "输出 pdf 文件" string ls_PathName, ls_FileName // 选择输出文件 li_rc = GetFileSaveName(ls_title, ls_PathName, ls_FileName, "pdf","pdf file (*.pdf), *.pdf") if(li_rc = 1) then // 使用 Distill 方法输出 pdf 文件 dw_1.Object.DataWindow.Export.PDF.Method = Distill! // 选择打印机 dw_1.Object.DataWindow.Printer = "Acrobat Distiller" dw_1.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes" // 输出 pdf 文件 if(dw_1.SaveAs(ls_PathName, PDF!, true) = 1) then messagebox(ls_title,"保存成功!") else Messagebox(ls_title,"保存失败!",StopSign!) end if end if 以上程序在PowerBuilder 9.01 Build 7096下调试通过。 如果本机上没有安装PowerBuilder ,只需要将X:\Program Files\Sybase\Shared\PowerBuilder\drivers的内容拷贝到一个文件下,安装时找到即可。 另外,你也可以在X:\Program Files\Sybase\Shared\PowerBuilder\drivers下编辑.BAT文件,写入: rundll32.exe printui.dll,PrintUIEntry /if /f .\\ADIST5.INF /r "LPT1:" /b "Acrobat Distiller" /m "Acrobat Distiller" 运行它来实现添加虚拟打印机。 原文出处:http://www.pdfsky.cn/read-pdf-tid-1073.html
回复
做梦的猫 2013-08-25
转贴,本人没试过: 后台自动打印PDF文件,其中的解决方案可以考虑使用readr的命令行参数: 前提是客户机上必须要装有adobe的reader 在获取reader的路径后加上 /p /h 加上被打印的pdf的文件全路径即可 pb 代码: string ls_reader_path="c:\program files\abobe\reader 9.0\reader>acrord32 /P /h " string ls_pdf_path="d:\pdf_files\test.pdf" string ls_print_path=ls_reader_path+ls_pdf_path run(ls_print_path) 以上代码即可实现pb的后台打印 pdf 的功能
回复
A啦Dbit 2013-08-23
需要虚拟打印机支持
回复
fengxiaohan211 2013-08-23
引用 3 楼 kenshu 的回复:
我以前做过,但太久了,而且每个人的虚拟打印机不同 思路是这样的: 在打印之前,开一个进程(比如你运行一个EXE)。 这个多出来的EXE,在那里等打印保存的窗口出来(findwindow),等到的时候,bringwindowtotop, 虚拟键盘输入,帮它输入文件名,再帮它按保存.
大师最近忙什么
回复
heremei 2013-08-23
问题要尽可能地描述清楚,这样才有助于别人帮你解决问题。
回复
WorldMobile 2013-08-22
引用 楼主 zhuhuojun1983 的回复:
虚拟打印如何取消另存为,而是直接保存?
没看明白,你的虚拟打印是安装的虚拟打印机吗?还是自己做的程序?
回复
kenshu 2013-08-22
我以前做过,但太久了,而且每个人的虚拟打印机不同 思路是这样的: 在打印之前,开一个进程(比如你运行一个EXE)。 这个多出来的EXE,在那里等打印保存的窗口出来(findwindow),等到的时候,bringwindowtotop, 虚拟键盘输入,帮它输入文件名,再帮它按保存.
回复
fengxiaohan211 2013-08-22
虚拟打印机好像不行吧
回复
发动态
发帖子
API 调用
创建于2007-09-28

665

社区成员

PowerBuilder API 调用
申请成为版主
社区公告
暂无公告