动态创建PDF文件并绑定到Pdf Viewer控件

时间:2012-06-15 19:35:27

标签: c# silverlight telerik

我在 Silverlight 应用程序中生成一个ssrs报告,我需要将 ssrs报告转换为RadPDFViewer control(telerik silverlight)。 所以我使用WCF将pdf文件保存在项目文件夹中。 现在我需要再次读取文件并将其绑定到 Pdfviewer

保存以异步方式发生。 我该如何等待,直到文件被保存,然后从文件夹中读取?

另外,您能否告诉我如何将PDF作为内存流阅读。

我运行以下代码失败。

public byte[] ReturnPdf(string requestUrl) {
        HttpWebRequest req = null; var buf = new byte[1024];
        try
        {
                req = (HttpWebRequest)WebRequest.Create(requestUrl);

                req.Credentials = CredentialCache.DefaultCredentials;

                req.Method = "GET"; var objResponse = req.GetResponse();
                var stream = objResponse.GetResponseStream();
                if (stream != null){BinaryReader br = new BinaryReader(stream);
                        buf = br.ReadBytes(1024);
                } if
                (stream != null) stream.Close();

        }
        catch Exception e){}return buf;
}

private void button2_Click(object sender, EventArgs e)
{

        string baseUrl = "http://abc/ReportServer&rs:Command=Render&rs:ClearSession=true&rs:Format=PDF";

        const string nullString = ":isnull=true";


        byte[] o = ReturnPdf(baseUrl);

        byte[] bytes = new byte[1024];
        Stream s = new MemoryStream(bytes);

}

1 个答案:

答案 0 :(得分:2)

撰写PDF流:

Write PDF stream to response stream

您可以检查文件是否已完整写入。

How to test if a file is currently being written to

或者这可能会有所帮助:

How to check for file lock?