PowerBuilder 9.0 Datawindow 導出 pdf 文件

PowerBuilder 9.0 Datawindow 導出 pdf 文件

把 Datawindow 導出到PDF文件,早就想做了。爲此我曾經試過幾個版本的PowerBuilder(PowerBuilder 9.0,PowerBuilder 10.0),但都沒有試成功。我一直以爲是PB的 Bug,今天在網上搜了很多資料,終於搞定。原來要安裝gs705w32.exe 和 Acrobat  的虛擬打印機。PB這樣導出PDF文件,也太不專業了吧。

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 = 1then
        
// 使用 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= 1then
            messagebox(ls_title,
"保存成功!")
        
else
            Messagebox(ls_title,
"保存失敗!",StopSign!)
        
end if
    
end if
以上程序在PowerBuilder 9.01 Build 7096下調試通過。

另外,你也可以在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"  
運行它來實現添加虛擬打印機。  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章