I've done something like this before:


VB Code:
  1. Dim rptFiveDay As New FiveDayNotice
  2. SQL = "EXEC sp_rptFiveDayNotice " & Session("FormNo")
  3. adapter = New SqlDataAdapter(SQL, Ado.DataConnection)
  4. adapter.Fill(ds, "FiveDayNotice")
  5. rptFiveDay.SetDataSource(ds)
  6. ExportData(rptFiveDay) 'Pass report to PDF

VB Code:
  1. Public Sub ExportData(ByRef oRpt As Object)
  2.         Dim fs As IO.FileStream
  3.         Dim FileSize As Long
  4.         Dim oDest As New CrystalDecisions.Shared.DiskFileDestinationOptions
  5.         Dim ExportFileName As String = System.IO.Path.GetTempPath & Environment.TickCount.ToString & ".pdf"
  6.  
  7.         oRpt.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
  8.         oRpt.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat
  9.         oDest.DiskFileName = ExportFileName
  10.         oRpt.ExportOptions.DestinationOptions = oDest
  11.         oRpt.Export()
  12.  
  13.         Response.Clear()
  14.         Response.Buffer = True
  15.         Response.AddHeader("Content-Type", "application/pdf")
  16.         fs = New IO.FileStream(ExportFileName, IO.FileMode.Open)
  17.         FileSize = fs.Length
  18.         Dim bBuffer(CInt(FileSize)) As Byte
  19.         fs.Read(bBuffer, 0, CInt(FileSize))
  20.         fs.Close()
  21.         Response.BinaryWrite(bBuffer)
  22.         Response.Flush()
  23.         Response.Close()
  24.     End Sub