PB9如何实现datawindow打印导出PDF,PB导出PDF?
之前的saveas导出pdf,设置非常麻烦。需要
1. 安装gs705w32.exe
2. 安装虚拟打印机 Sybase\Shared\PowerBuilder\drivers\ADIST5.INF 手动添加打印机
这个方法现在对于win64不支持。
今天客户提出要我给他在某个界面做一个自动打印体检表导出或者打印成pdf放到web服务器上面去。
测试了上面的思路不行,而且现在离谱的是连gs705w32.exe也无法下载到。
我觉得直接用print成pdf(借助虚拟机)比较方便和符合。但是像doPDF和pdffactory每次都要提示保存文件名。比较麻烦。没法自动化操控。
偶尔看到一个Adobe Acrobat XI安装后的pdf打印机有个打印机首选项设置,可以设置直接保存到某个目录,而打印文件名,pb的datawindow.printer参数可以指定的。所以能实现自动化导出到某个文件夹。实现服务器自动运行,自动服务。
1. 安装 Adobe Acrobat XI,需要系列号,安装后需要验证成正式版,否则打印时会弹出。这个自己想办法。也有人说有从安装包分立的只带打印机的安装,但是我没有找到。
2. 控制面板\硬件和声音\设备和打印机》Adobe PDF打印机》右键》打印机首选项》
如图,选择导出的文件夹。并且取消打印后预览。以方便我们自动运行。
打印按钮的代码:
fileid ++
dw_1.object.datawindow.print.DocumentName=string(fileid)+".pdf" //设置打印文档名
//dw_1.object.datawindow.printer="doPDF v7" //有弹出保存按钮,文件名
dw_1.object.datawindow.printer="adobe PDF" //这个就厉害了,设置好了文件名,就不弹出保存界面。
int li_i
li_i= dw_1.print() //dw的print不选打印机,所以adobe PDF需要设置成默认打印机
messagebox('结果',String(li_i))
简单测试程序。点击按钮:
任务栏右下角提示:
导出的文件非常正常,实际工作中以系统编号pdf。这样可以给客户在web上面下载。
打开看看:
遗留的问题:adobe安装中,哪些文件构成对打印机的支持。如果可以提取那部分,就好了。