PB9后已经支持输出PDF类型的打印输出。但如果要通过PB11的WebForm模式在客户端输出PDF文档,必须安装SYBASE提出的虚拟打印驱动。以下是我的经验:
1.下载安装Ghostscript
Ghostscript是一个多功能的Postscript数据处理程序,能把Postscript转换成不同的格式,是一套基于、及PDF的等而编译成的。
安装GS时,使其在PB11下能工作,一要注意其版本。这点让我走了很多弯路,因为在网上查找时,我找到的是GS6.05,结果一直调试不通,要么生成不了PDF文件,要么生成的文件使用打不开,请求sybase的newsgroups也搞不清什么原因,后来我下载了一个gs7.06后,一切问题就解决了。
点这里下载 然后直接安装即可。
另外需要注意的安装位置,因为按SYBASE的提示装在PB软件安装目录下的Shared\PowerBuilder\gs下,最后的目录结构应该是:
2. 添加虚拟打印机
在 Shared\PowerBuilder\drivers 下建立一个批处理文件,内容是(注意是在一行内):
rundll32.exe printui.dll, PrintUIEntry /if /f .\\ADIST5.INF /r "LPT1:" /b "Acrobat Distiller" /m "Acrobat Distiller"
然后执行它创建一个虚拟打印机,然后将打印机的名字修改为“Sybase DataWindow PS”
3. 修改打印机的用户操作权限
操作方法见下图:
如果没有ASPNET用户,必须先添加。(注意我的是在XP下的操作)
最后将打印机设置为默认打印机。
4. 最后就可输出dw的内容了
示例代码如下:
//dw_report的“Data Export”下的“format to configure”修改为PDF
//Saving as PDF select the distill method
dw_report.Object.DataWindow.Export.PDF.Method = Distill!
//select printer
dw_report.Object.DataWindow.Printer = "Sybase DataWindow PS"
dw_report.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes"
//printing pdf files
dw_report.SaveAs ( "zzz.pdf",PDF!,false)
#if defined PBWEBFORM then
DownloadFile("zzz.pdf", true) // true=打开, false=下载
#end if
dw_report.print() //如果要显示内定的打印任务窗口
阅读(1760) | 评论(0) | 转发(0) |