使用水晶报告导出为pdf文件

时间:2013-06-13 18:52:41

标签: c# asp.net crystal-reports

我这里有代码示例,我可以直接保存为PDF文件,但我想要做的是显示客户端的第一个pdf文件,并允许用户保存它。我如何实现这一目标?

ReportDocument rpt = new ReportDocument();
rpt.Load(@"C:\CrystalReport2.rpt");

rpt.SetDataSource(datatablesource);

ExportOptions rptExportOption;
DiskFileDestinationOptions rptFileDestOption = new DiskFileDestinationOptions();
PdfRtfWordFormatOptions rptFormatOption = new PdfRtfWordFormatOptions();
string reportFileName = @"C:\SampleReport.pdf";
rptFileDestOption.DiskFileName = reportFileName;
rptExportOption = rpt.ExportOptions;
{
    rptExportOption.ExportDestinationType = ExportDestinationType.DiskFile;
    //if we want to generate the report as PDF, change the ExportFormatType as "ExportFormatType.PortableDocFormat"
    //if we want to generate the report as Excel, change the ExportFormatType as "ExportFormatType.Excel"
    rptExportOption.ExportFormatType = ExportFormatType.PortableDocFormat;
    rptExportOption.ExportDestinationOptions = rptFileDestOption;
    rptExportOption.ExportFormatOptions = rptFormatOption;
}

rpt.Export();

2 个答案:

答案 0 :(得分:8)

这是我的代码:

dbObj = new ConnectDB();
query = "SELECT Student.*, School.*FROM Student where admissionnumber = '" + reg_number + "'";
DataSet ds = dbObj.Fetch_Data(query, "DataView");
ReportDocument rd;
rd = new ReportDocument();
rd.Load(Application.StartupPath + "\\StudentReg.rpt");
//rd.Load("StudentReg.rpt");
rd.SetDataSource(ds);
crv.ReportSource = rd;
crv.Refresh();
if(File.Exists(@"D:\" + reg_number + ".pdf"))
    File.Delete(@"D:\" + reg_number + ".pdf");
rd.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, @"D:\" + reg_number + ".pdf");

答案 1 :(得分:2)

ExportOptions CrExportOptions ;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = "C:\\SampleReport.pdf";
CrExportOptions = doc.ExportOptions;
{
    CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
    CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
    CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
    CrExportOptions.FormatOptions = CrFormatTypeOptions;
}
doc.Export();

这样的代码...........