PB11.5做web开发中打印的功能完全不同于原先的windows程序。
在web开发中,打印首先要在服务器端创建一个pdf文件,再通过客户端浏览器打开这个pdf文件来进行打印,当然也可以把pdf文件下载的本地再打印。
可以支持函数有Print, PrintCancel, PrintClose, PrintDefineFontDefine, PrintLine, PrintOpen, PrintOval,PrintPage, PrintRect, PrintRoundRect, PrintSetSpacing, PrintText, PrintWidth, PrintX, PrintY.PrintSetFont
当程序中调用了打印函数,即在窗口的右上角会出现打印机的图标,点击它会弹出打印管理的窗口,点击打开所要打印的pdf即可
但是需要说明的是,服务器中必须安装一个虚拟打印机,sybase要求安装(或者也可以认为是推荐)ghostscript 支持输出PDF类型的打印输出: ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs851/gs851w32.exe ,并且将打印机命名为“Sybase DataWindow PS”,其实这个是datawindow打印中的默认打印机设置,当然也可以修改为其他名,不过我建议初次使用还是完全按照sybase的要求来做,这样会避免出现其他问题。
ghostscript 的具体安装说明稍等两天补上。。。。
今天补上这个
1、下载ghostscript 可以选择最新的,注意看下载的版本,我是用windows的
2、在IIS服务器上安装GS。我是在自己的机器上安装的,全部用的是默认
3、安装打印机。在"控制面板">"打印机和传真">"添加打印机",这过程中把那个自动检测的勾去了,端口默认的LPT1就可以。驱动选择要选从"磁盘安装">"Sybase/Shared/PowerBuilder/drivers",
此时选择Adobe厂商的inf文件"ADIST5.INF",读取到五个驱动:
"Acrobat Distiller",
"Acrobat Distiller CS",
"Acrobat Distiller CT",
"Acrobat Distiller J",
"Acrobat Distiller K"
选择第一个"Acrobat Distiller"(其它四个也可以,有什么区别到现在偶还不知道),下一步即可>"安装完毕"
4、把新装的打印设为默认的,然后重命名为Sybase DataWindow PS;
如果服务器中没有安装上述的这个打印机,则会出现这样一个错误: SaveAS did not complete successfully,return code is:-1。
另一种下载方式:给一个简单的调用代码
if ds_report.RowCount() > 0 then
#if defined PBWEBFORM then
if ds_report.SaveAs("myreport.pdf", PDF!, TRUE) <> -1 then
DownloadFile("myreport.pdf", true)
end if
#else
ds_report.Print()
#end if
end if