webreport save (download), print with C# code

serifelsenserifelsen Unknown
edited 12:13AM in FastReport .NET
Hi

is it possible to save(pdf), print webreport content with C# code?

I know there are save and print buttons on the webreport component. I want print and save report without showing webreport component.

Regards

Comments

  • serifelsenserifelsen Unknown
    edited September 2012
    For save report as PDF file I wrote:

    string tempFolder = Path.GetTempPath() + "_" + Guid.NewGuid().ToString();
    string filepath = tempFolder + "\\Result.pdf";

    if (!Directory.Exists(tempFolder))
    {
    Directory.CreateDirectory(tempFolder);
    }

    FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport();

    export.OpenAfterExport = false;

    WebReport1.Report.Export(export, filepath);




    System.IO.Stream iStream = null;

    // Buffer to read 10K bytes in chunk:
    byte[] buffer = new Byte[100000];

    // Length of the file:
    int length;

    // Total bytes to read:
    long dataToRead;

    // Identify the file to download including its path.
    //string filepath = "DownloadFileName";

    // Identify the file name.
    string filename = System.IO.Path.GetFileName(filepath);

    try
    {
    // Open the file.
    iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open,
    System.IO.FileAccess.Read, System.IO.FileShare.Read);

    // Total bytes to read:
    dataToRead = iStream.Length;

    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);

    // Read the bytes.
    while (dataToRead > 0)
    {
    // Verify that the client is connected.
    if (Response.IsClientConnected)
    {
    // Read the data in buffer.
    length = iStream.Read(buffer, 0, 100000);

    // Write the data to the current output stream.
    Response.OutputStream.Write(buffer, 0, length);

    // Flush the data to the HTML output.
    Response.Flush();

    buffer = new Byte[100000];
    dataToRead = dataToRead - length;
    }
    else
    {
    //prevent infinite loop if user disconnects
    dataToRead = -1;
    }
    }
    }
    catch (Exception ex)
    {
    // Trap the error, if any.
    Response.Write("Error : " + ex.Message);
    }
    finally
    {
    if (iStream != null)
    {
    //Close the file.
    iStream.Close();
    }
    Response.Close();
    }

    works perfect

Leave a Comment