關於水晶報表導出到PDF格式的一個注意事項

VS2005下PULL模式水晶報表導出到PDF,客戶端點擊打印按鈕,直接重定向到生成的PDF文檔,下載打印。 這一段導出到pdf的程序,是用了很長時間的,沒有出現過問題,具體代碼如下: public void PullModulePrint()     {         CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc = new ReportDocument();         rptDoc.Load(this.Server.MapPath("myTest.rpt"));         rptDoc.SetDatabaseLogon("User", "Pwd", "DBServer", "DBName");         rptDoc.SetParameterValue("Parameter", [parameterValue]);         CrystalDecisions.Shared.DiskFileDestinationOptions objFile = new DiskFileDestinationOptions();         objFile.DiskFileName = this.Server.MapPath("myTest.pdf");         rptDoc.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;         rptDoc.ExportOptions.DestinationOptions = objFile;         rptDoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;         rptDoc.Export();         Response.ClearContent();         Response.ClearHeaders();         Response.ContentType = "application/pdf";         Response.WriteFile(objFile.DiskFileName);         Response.Flush();         Response.Close();              }

但是,最近碰到一個問題,我的水晶報表定義成A4橫向打印,不知爲何,導出的PDF總是A4縱向,導致報表顯示不全。一開始,我以爲是服務器端沒有裝打印程序的問題,我在服務器上安裝了相關打印機的驅動,在水晶報表設計中選擇了該打印機,同時選擇A4橫向。結果,導出的PDF依然縱向。 查詢了相關技術文章,在rptDoc.SetDataSource(dt);語句後面添加了兩行代碼:    rptDoc.PrintOptions.PaperSize=PaperSize.PaperA4;    rptDoc.PrintOptions.PaperOrientation=PaperOrientation.Landscape; 意即在報表文件加載了數據後,設定報表爲A4橫向。測試導出到文件沒有問題了。 這說明,水晶報表導出PDF默認的紙張格式是A4縱向,如果非此紙型的導出,需要在報表文件加載後,用語句特別描述具體的紙型,這樣導出的文件才能正常。 其他的導出格式,我沒有另行嘗試,如果有朋友有興趣,可以跟帖發一下嘗試結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章