This is code that I use in a class to export to multiple file formats. It is written in
VB, but I am sure you can convert it to C# pretty easily.
Public Class ClassPrintCrystalReports
'This sub is used to export the Crystal Report to Adobe Acrobat.
Public Sub PrintReport(ByVal objReport As CrystalDecisions.CrystalReports.Engine.ReportDocum ent, _
ByVal SessionID As String, ByVal WebPage As System.Web.UI.Page, _
ByVal DocType As String)
Dim ExpOpt As New ExportOptions()
Dim DiskFileDestOpt As New DiskFileDestinationOptions()
Dim ExpFile As String
'I am using this path since I know it will exist on everyone's computer.
' ExpFile = "C:\WinNT\Temp\" + SessionID + ".pdf"
Select Case DocType
Case "pdf"
ExpFile = "C:\WinNT\Temp\" + SessionID + ".pdf"
Case "rtf", "txt", "doc"
ExpFile = "C:\WinNT\Temp\" + SessionID + ".doc"
Case Else
Return ''No valid export type specified.
End Select
DiskFileDestOpt.DiskFileName = ExpFile
ExpOpt = objReport.ExportOptions
With ExpOpt
.DestinationOptions = DiskFileDestOpt
Select Case DocType
Case "pdf"
.ExportFormatType = ExportFormatType.PortableDocFormat
Case "rtf", "txt", "doc"
.ExportFormatType = ExportFormatType.WordForWindows
End Select
.ExportDestinationType = ExportDestinationType.DiskFile
End With
objReport.Export()
WebPage.Response.ClearContent()
WebPage.Response.ClearHeaders()
Select Case DocType
Case "pdf"
WebPage.Response.ContentType = "application/pdf"
Case "rtf", "txt", "doc"
WebPage.Response.ContentType = "application/msword"
End Select
WebPage.Response.WriteFile(ExpFile)
WebPage.Response.Flush()
WebPage.Response.Close()
System.IO.File.Delete(ExpFile)
End Sub