水晶报表PDF出力方法

使用前提条件:

1,电脑安装水晶报表

2,工程引用水晶报表相关的DLL

全局变量声明

1 public CrystalDecisions.CrystalReports.Engine.ReportDocument reportDocument1 = null;
2 public CrystalDecisions.Shared.ExportOptions exportOpts = null;
3 public CrystalDecisions.Shared.PdfRtfWordFormatOptions pdfRtfWordFormatOptions = null;
4 public CrystalDecisions.Shared.DiskFileDestinationOptions diskOpts = null;

具体方法:

 1         #region PDF出力
 2         /// <summary>
 3         /// PDF出力
 4         /// </summary>
 5         /// <param name="rptName">crystalReport名</param>
 6         /// <param name="rptDataset">rptデータセット</param>
 7         /// <param name="rptObj">rptパラメータ</param>
 8         /// <param name="pdfDirectory">pdfDirectory</param>
 9         public void Out_PDFrpt(string rptName, object rptDataset, object[][] rptObj, string pdfDirectory)
10         {
11             // カレントパス保存
12             string currentPass = Directory.GetCurrentDirectory();
13 
14             try
15             {
16                 //レポートの初期化
17                 if (this.reportDocument1 != null)
18                     this.reportDocument1.Dispose();
19                 this.reportDocument1 = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
20                 this.reportDocument1.Load(rptName);
21                 this.reportDocument1.SetDataSource(rptDataset);
22                 if (rptObj != null)
23                 {
24                     foreach (object[] paraObj in rptObj)
25                         this.reportDocument1.SetParameterValue((string)paraObj[0], paraObj[1]);
26                 }
27 
28 
29                 // PDF出力先取得
30                 if (!Directory.Exists(pdfDirectory))
31                 {
32                     Directory.CreateDirectory(pdfDirectory);
33                 }
34 
35                 Directory.SetCurrentDirectory(pdfDirectory);
36 
37                 // エクスポート設定
38                 exportOpts = new CrystalDecisions.Shared.ExportOptions();
39                 pdfRtfWordFormatOptions = new CrystalDecisions.Shared.PdfRtfWordFormatOptions();
40                 diskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions();
41                 exportOpts = reportDocument1.ExportOptions;
42 
43                 reportDocument1.ExportOptions.FormatOptions = pdfRtfWordFormatOptions;
44                 reportDocument1.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
45 
46                 exportOpts.FormatOptions = pdfRtfWordFormatOptions;
47                 exportOpts.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
48                 diskOpts.DiskFileName = DateTime.Now.ToString("yyyy-MM-dd-HHmmss")+".pdf";//出力PDF名称
49                 exportOpts.DestinationOptions = diskOpts;
50 
51                 // PDF出力
52                 this.reportDocument1.Export();
53 
54                 // カレントパス戻し
55                 Directory.SetCurrentDirectory(currentPass);
56             }
57             catch (Exception ex)
58             {
59                 // カレントパス戻し
60                 Directory.SetCurrentDirectory(currentPass);
61                 throw ex;
62             }
63         }
64         #endregion

 测试程序下载

每天成就一小步,积累下来就是一大步。 转发本文请注明出处,谢谢您的阅读与分享!
原文地址:https://www.cnblogs.com/lixiaobin/p/PDF.html